From: Martin Boese Date: 2007-03-04T22:59:14+09:00 Subject: Defining object methods in initialize I'd like to define methods on initialize that are specific for the created object. However it seems that the few lines of code below is defining them somewhere else since they are 'overwriting' each other: ============ class Foo def initialize(method_name, &block) self.class.send(:define_method, method_name, &block) end end aa = Foo.new(:whoareyou) { puts "I am aa" } bb = Foo.new(:whoareyou) { puts "I am bb" } aa.whoareyou # returns: "I am bb" - But I expect: "I am aa" bb.whoareyou # returns: "I am bb" Foo.whoareyou # undefined method ===> Good ============ Thanks! martin