Using a variable as a method name?

Hello,

I need a bit of help understanding how to use a
variable as a name for a method call. Forgive me
trying to explains this, I am new at all this. In the
code listed, I am tring to set the debugging level of
the Logger class, however, the variable in question is
not being sustituted prior to interpreting the method
call.

when “–debug”
if($DEBUG_LEVELS.include?(arg))
mylog.level = Logger::arg
^^^^^^^^^^^
else
puts “Debug level can be one of: DEBUG, INFO,
WARN, or ERROR”
dis_help
end

This causes Ruby to spit out that there is no method
called arg which is correct. So how do I get arg to
be substituted to the value rather than the var name?
I tried dereferencing and using the it within a string
(okay, a dumb idea). Any way, any help will be much
appreciated!

TIA!
Phy

  ____________________________________________________________________________________

Looking for last minute shopping deals?
Find them fast with Yahoo! Search.
http://tools.search.yahoo.com/newsearch/category.php?category=shopping

Try Logger.send(arg)

On Sat, Feb 23, 2008 at 7:18 PM, Phy P. [email protected] wrote:

This causes Ruby to spit out that there is no method
called arg which is correct. So how do I get arg to
be substituted to the value rather than the var name?
I tried dereferencing and using the it within a string
(okay, a dumb idea). Any way, any help will be much
appreciated!

What is the /type/ of arg?

If it’s a Proc, you might try arg.call().

If you’re trying to do it via string, look into eval.

Jay Fields has some thoughts:

I seem to remember seeing a better reference, only I can’t recall by
whom or
where.

Regards,
Sam

Hi,

On Sun, Feb 24, 2008 at 12:23 PM, Corey H. [email protected]
wrote:

Try Logger.send(arg)

In the case of Rails, `arg’ should also be lower case. Is it Logger.warn
or
.warning?

Logger.send(arg.downcase)

Arlen