Yep, Chad Fowler explained to me that it's the difference between precedence and binding with do/end vs {}

- Matt

On Sun, Jan 9, 2011 at 5:57 PM, Vincent Isambart <vincent.isambart@gmail.com> wrote:
> You are right, still a gotcha tho:
>
> Ruby 1.9.2:
>
>   def foo(a, b={})
>     b[:handler].call if b.has_key?(:handler)
>   end
>   foo :bar, handler: Proc.new do
>     puts 42
>   end
>
> `new': tried to create Proc object without a block (ArgumentError)

Works if you add parentheses though :
 def foo(a, b={})
   b[:handler].call if b.has_key?(:handler)
 end
 foo :bar, handler: (Proc.new do
   puts 42
 end)
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel