Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Дело в том, что методы в руби не являются обектами. Их конечно можно преобразовать к proc — но это уже другая история.
ruby-1.9.2-p0 > Method.new NoMethodError: undefined method `new' for Method:Class from (irb):15 from /home/saks/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>' </ore> Что немного смущает...
>> class MyClass
>> def initialize(value)
>> @x = value
>> end
>> def my_method
>> @x
>> end
>> end
=> nil
>> obj = MyClass.new(1)
=> #<MyClass:0x00000001cdb210 @x=1>
>> m = obj.method :my_method
=> #<Method: MyClass#my_method>
>> m.class
=> Method
>> m.call
=> 1
>>
Темная сторона Ruby, Proc и lambda