From: Albert Schlef Date: 2010-02-15T14:10:36+09:00 Subject: 'def', but with a closure It occurred to me several times that I wanted to do: @cars.each do |owner, model| widget = TkLabel.new(:text => model) def widget.get_owner return owner end end But, of course, this doesn't work because the code inside 'def' doesn't see the enveloping variables, so the 'owner' within the 'def' isn't recognized. So instead I do: @cars.each do |owner, model| widget = TkLabel.new(:text => model) meta = (class << widget; self; end) meta.send(:define_method, :get_owner) do return owner end end It work. Yet, it looks a bit ugly. Is there any "nicer" way I'm missing? -- Posted via http://www.ruby-forum.com/.