Из документации для Enumerable
:
перечислимого Mixin предоставляет классы коллекций с несколько обходом и методами поиска, а также с возможностью сортировки. Класс должен предоставлять каждый метод, который дает последовательные элементы коллекции.
Так Enumerable модуль требует, чтобы классы, которые включают в себя его реализации each
самостоятельно. Все остальные методы в Enumerable зависят от each
, реализуемого классом, который включает Enumerable.
Например:
class OneTwoThree
include Enumerable
# OneTwoThree has no `each` method!
end
# This throws an error:
OneTwoThree.new.map{|x| x * 2 }
# NoMethodError: undefined method `each' for #<OneTwoThree:0x83237d4>
class OneTwoThree
# But if we define an `each` method...
def each
yield 1
yield 2
yield 3
end
end
# Then it works!
OneTwoThree.new.map{|x| x * 2 }
#=> [2, 4, 6]
Как бы реализовать это? –