Search code examples
rubyenumerable

Requirements for including Enumerable


I've been trying to design my read only Array data structure and I really like the idea of providing traversing options with Enumerable class, but I cannot find requirements of it. In some examples that I've looked, the C implementation looks for #each method, but it seems to me that it can't be enough.


Solution

  • From Pickaxe p. 474 and also from the core documentation:

    The class [mixing in Enumerable] must provide a method each, which yields successive members of the collection. If Enumerable#max, min, sort, or sort_by is used, the objects in the collection must also implement a meaningful <=> operator, because these methods rely on an ordering between members of a collection.