From: Frodo Larik Date: 2005-08-28T23:58:51+09:00 Subject: Dynamic methods / accessors Hi all, I'm trying to setup some kind of dynamic method / accessor assignment to objects. But I don't want the other objects from the same class to know about "personal" methods. I'm just learning Ruby, so it could be I missed something. For example: class MyThing def create_method(method) # I found two things on internet which can acchieve this # self.class.class_eval { attr_accessor method } # AND # self.class.send(:define_method, method, &block) # but I'm not sure which is the best one to use, but I think # I prefer the attr_accessor, because that's the functionality # I need end end # Create first object a = MyThing.new a.create_method('box') # Adds a method box to a a.box = 'something inside' # The nicest thing would be if I could do something like this: a.create_method('box','some_value'), so a.box is populated with 'some value' # Create second object b = MyThing.new # I don't want the following to happen b.box = 'something other' I don't want the method 'box' be available to b, only to a How can I achieve this? I saw it was possible to achieve this with something like this: class YourThing < MyThing # A placeholder class for the dynamic methods end but I don't know the name of the class on forehand, so if something like this is possible: class #{i_want_this_class} < MyThing # A placeholder class for the dynamic methods end That would be nice. Sincerely, Frodo Larik