Одно из лучших применений объекта связанного метода, возвращаемого Object#method
, - для блоков.Возвращаемый результат этого метода может быть преобразован в аргумент блока.Представьте, что у вас есть:
class Converter
def convert_item(item)
item.transmorph
end
end
Тогда вы можете сделать это
c = Converter.new
elements.map(&c.method(:convert_item))
или когда вы находитесь в конвертере
elements.map(&method(:convert_item))
, что ИМО более элегантно, чемявный синтаксис создания блока.Он также поддерживает to_proc
, поэтому вы можете сделать это
some_object.callback = my_handler.method(:activate).to_proc
, а затем в some_object
вы можете сделать
@callback.call(data)