This may be a more generic Ruby question, so I’m going to ask on the
Ruby
forum, but I’m trying to figure out if there is a way to pass in the
string
value of a variable as the name of a method.
For example, I would like to do something like:
def sort_obj_by_uid(objects,@attr)
@tmparray = Array.new
@tmphash = Hash.new
for object in @objects
if ! @tmphash.has_key?([email protected]_s)
@tmphash[[email protected]_s] = Array.new
end
@tmphash[[email protected]_s].push(object)
end
end
Where the method name is the @attr value.
Hi –
On Thu, 16 Mar 2006, Leah C. wrote:
if ! @tmphash.has_key?([email protected]_s)
@tmphash[[email protected]_s] = Array.new
end
@tmphash[[email protected]_s].push(object)
end
end
Where the method name is the @attr value.
Yes: send, like this:
object.send(@attr).to_s
If you want to send additional arguments, you put them in the second,
third… positions.
David
–
David A. Black ([email protected])
Ruby Power and Light, LLC (http://www.rubypowerandlight.com)
“Ruby for Rails” chapters now available
from Manning Early Access Program! Ruby for Rails
On Thu, 16 Mar 2006, [email protected] wrote:
def sort_obj_by_uid(objects,@attr)
Where the method name is the @attr value.
Yes: send, like this:
object.send(@attr).to_s
Whoops, I meant:
object.send(@attr.to_s)
David
–
David A. Black ([email protected])
Ruby Power and Light, LLC (http://www.rubypowerandlight.com)
“Ruby for Rails” chapters now available
from Manning Early Access Program! Ruby for Rails