From: matt@... (matt neuburg) Date: 2009-03-16T02:17:42+09:00 Subject: can I tighten this up with block or eval? I have here a class called ClassMaker whose greeter method returns an instance of anonymous class containing a hello method: class ClassMaker def initialize(s); @howdy = s; end def greeter c = Class.new do def initialize(s); @hello = s; end def hello puts @hello # this is the nub of the matter end end c.new(@howdy) end end ClassMaker.new("gday").greeter.hello I would like the anonymous class's hello method to access whatever the value of my ClassMaker instance's @howdy ivar may be at the moment greeter is called. I am presently doing this, as you can see, by giving the anonymous class an initialize method and passing the @howdy ivar's value into an ivar of the anonymous class's instance. This works but seems heavy-handed. I feel I should be able to do it without the anonymous class having any initialize method at all. The whole situation has "closure" written all over it. So I tried to define the hello method to accomplish the same thing using evals and blocks and other tricky stuff, and became hopelessly confused. Could someone straighten me out? Thx - m. -- matt neuburg, phd = matt@tidbits.com, http://www.tidbits.com/matt/ Leopard - http://www.takecontrolbooks.com/leopard-customizing.html AppleScript - http://www.amazon.com/gp/product/0596102119 Read TidBITS! It's free and smart. http://www.tidbits.com