From: gruby@... (John) Date: 2003-09-16T07:08:55+09:00 Subject: Eval and methods How do you do meta type stuff in Ruby? E.g. a_method = "to_str" an_attribute = "color" class Toad attr_accessor :color def initialize( c ) self.color = c end def to_str puts "#{@color} toad." end end t = Toad.new("brown") puts t.color #brown t.to_str #brown toad. Now how can I use the a_method and an_attribute variables? I'm used to UserTalk, where I would just say t.[an_attribute] = "green" or t.[a_method] #in UserTalk, evaluates to t.to_str and is called Am I supposed to use instance_eval? t.instance_eval(an_attribute)= "green" #syntax error I'm especially wondering about this in relation to passing a hash to a constructor, e.g. t = Toad.new( { "color" => "brown", "size" => "large" } and having the keys to the hash become attributes of the object.