Newbie question: variable method call

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/.