Ok, it works in Ruy 1.8.7 but not in Ruby 1.9.

Is there another way to do so?

blambeau

On Thu, Jan 8, 2009 at 3:12 PM, LAMBEAU Bernard <blambeau / gmail.com> wrote:
> Ruby's documentation of instance_eval shows the "signature" of instance_eval as:
>
> obj.instance_eval {| | block } => obj
>
> I assume that the block should not take any argument. However, if I
> write the following code:
>
> class A
>  def sayhello(who)
>    puts "hello #{who}: #{object_id}"
>  end
> end
>
> A.new.instance_eval do |who|
>  sayhello("me")
>  who.sayhello("who")
> end
>
> it prints "hello me: -605850598" then  "hello who: -605850598"
>
> Is is guaranteed to work??
>
> blambeau
>