Я хотел бы создать метод экземпляра, который принимает в качестве параметра другой метод экземпляра своего собственного класса, а затем применяет переданный метод к экземпляру, с которым он работает (известный как self
):
class MyClass
attr_reader :called_methods
def initialize
@called_methods = []
end
def my_first_method!
@called_methods << :my_first_method
self
end
def my_second_method!
@called_methods << :my_second_method
self
end
def my_strange_method!(secondary)
# Want to apply method whose name is given by secondary, to self
end
end
p MyClass.new.my_second_method!.my_strange_method!(:my_first_method!).called_methods
Я подозреваю, что унарный &
может быть ключевым, но все веб-страницы, которые я могу найти в этом операторе, включают вызов методов для нескольких объектов, как при итерации по Enumerable
с #each
или #map
.