Я создаю свою собственную версию метода .each в Ruby, и у меня возникают проблемы с ее реализацией для ввода значений Range (1..10).
module Enumerable
# @return [Enumerable]
def my_each
return to_enum :my_each unless block_given?
index = 0
while index < size
if is_a? Array
yield self[index]
elsif is_a? Hash
yield keys[index], self[keys[index]]
elsif is_a? Range
yield self[index]
end
index += 1
end
end
end
Я пытаюсь получить его, если передано
r_list = (1..10)
r_list.my_each { |number| puts number }
Выход будет
=>
1
2
3
4
5
6
7
8
9
10