Robert Klemme wrote:

> A disadvantage of the latter approach is that you cannot define 
> methods that receive a block.  There is no equivalent (yet) for "def 
> foo(&b) b.call(1) end" with define_method, because you cannot do 
> define_method(:foo) {|&b| b.call(1)}.

(flori@lambda:~ 0)$ irb
irb(main):001:0> A = Class.new { define_method(:foo) {|&b| b.call(1)} }
=> A
irb(main):002:0> A.new.foo { |x| 2 * x }
=> 2
irb(main):003:0> RUBY_VERSION
=> "1.9.0"

-- 
Florian Frank