From: "Weirich, James" Date: 2003-09-16T07:36:05+09:00 Subject: Re: Eval and methods From: gruby@sysarchitects.com [mailto:gruby@sysarchitects.com] > a_method = "to_str" > an_attribute = "color" [ class def elided ] > 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? Everything in Ruby in accomplished through sending messages to objects. So, t.f can be written as t.send("f"). Your toad example can use: t.send(an_attribute + "=", "green") t.send(a_method) If you are interested in instance variables only, you can use the instance_variable_get and instance_variable_set methods as well ... t.instance_variable_get("@color") #=> "green" t.instance_variable_set("@color", "purple") BTW, Ruby expects your to_s method to return the string instead of printing it. -- -- Jim Weirich / Compuware -- FWP Capture Services