Hi all.
Here is the code:
str = ‘some string’
blk = lambda{|arg| self.text = str; self.text = arg}
class A
def text=(str)
#blah
end
end
A.new.instance_eval( &blk )
Questions about the code:
- str would be always visible to block? (Quick tests says yes, but it
was
unexpected for me)
- how can I pass argument to block?
Thanks.
Victor.
“V” == Victor S. [email protected] writes:
V> 1. str would be always visible to block? (Quick tests says yes, but
it was
V> unexpected for me)
yes,
V> 2. how can I pass argument to block?
use #instance_exec (1.9 only)
Guy Decoux
From: ts [mailto:[email protected]]
use #instance_exec (1.9 only)
Thanks a lot! I use exactly 1.9.
Guy Decoux
Victor.
2006/5/8, Victor S. [email protected]:
end
end
A.new.instance_eval( &blk )
Questions about the code:
- str would be always visible to block? (Quick tests says yes, but it was
unexpected for me)
- how can I pass argument to block?
You can as well pass self as argument:
blk = lambda {|it, text| it.text=text}
a=A.new
blk.call a, str
Regards
robert
From: Robert K. [mailto:[email protected]]
#blah
You can as well pass self as argument:
blk = lambda {|it, text| it.text=text}
a=A.new
blk.call a, str
Yes, I can. But it looks a bit ugly, isn’t it?
robert
Victor.