------ art_23080_21152739.1152884194650
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
[snip]
>
>
> >
> Excellent. Don't use the & to convert the Proc into a block - just use
> the method reference directly.
Too much honor, I seem to post too fast, furthermore the idea is ara's not
mine :)
Are you getting the "singleton method called for a different object
> (TypeError)" error?
>
> Thanks,
> Sean
>
>
Exactly
and though my original code is not well documenting the behavior ara is
exploiting it really does seem to be a problem because of the "internal"
nature of IO.
Here is eventually the code mimicking the structure of the inherited class
method "open" and one can see that it works perfectly well:
class X # role of IO
class << self
def x(*args,&block) # role of open
block.call(1764) if block
end
end
end
OLD .method :x
class Y < X # role of File
class << self
def x; "rubbish"; end
end
end
class Y
class << self
define_method(:x, OLD )
end
end
Y.x{ |a| puts a }
Cheers
Robert
------ art_23080_21152739.1152884194650--