Assuming your variable contains a string, try this:
method_name = "feed"
pet.send(method_name)
-mats
···
----- Original Message ----
From: Kal Starkis <kal@starkis.com.au>
To: ruby-talk ML <ruby-talk@ruby-lang.org>
Sent: Saturday, May 26, 2007 3:50:41 PM
Subject: Newbie question: variable method call
Is there a way to use the value of a variable to call a method of that
name?
For example, rather than use the following code to determine which
method of the 'pet' object to call:
if action == "feed"
pet.feed
elsif action == "walk"
pet.walk
elsif action == "pat"
pet.pat
#etc...
end
I'd rather just do something like this:
pet.action
The problem is, Ruby thinks I am trying to call a method named 'action',
instead of evaluating the variable and using its value (e.g. 'feed').
--
Posted via http://www.ruby-forum.com/.