Я пытаюсь добавить дополнительную функциональность в класс Array, чтобы принять блок. Я думаю, что в основном у меня это получилось, однако я не уверен в синтаксисе, который я хочу использовать, когда вызов метода использует приведение .to_proc / & для предопределенных методов (например, .odd?
).
У меня такой код:
class Array
def keep
each do |user_array_element|
user_array_element
if yield(user_array_element) == true
kept_elements ||= []
kept_elements << user_array_element
end
end
end
end
Пытаемся пройти следующий тест:
assert_equal [1, 3], [1, 2, 3].keep(&:odd?)
keep
возвращал перечислитель, если блок не задан, чтобы его можно было связать в цепочку. - person Cary Swoveland   schedule 20.04.2015