Need cohercing a var into a method name

Hello,

I need a small bit of help, I am playing with Logger class and ran into
a small problem I am not sure how to solve. Namely, I was interested in
command line setting of the logging level, however, the passed argument
is not accepted as a method name nor can I figure out how to get the arg
“coherced” to a string prior to evaluation of the method call. Here is
my code:

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

(hi-lited is the code segment in question)
I am using GetoptLong to do the cmd line processing. The error given by
ruby is:
test.rb:136 undefined method `arg’ for Logger:Class (NoMethodError)

TIA,
Phy

  ____________________________________________________________________________________

Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs

On Feb 22, 2008, at 5:14 PM, Phy P. wrote:

  if(DEBUG_LEVELS.include?(arg))

TIA,
Phy

Logger.const_get(arg)

-Rob

Rob B. http://agileconsultingllc.com
[email protected]

Rob,

Thanks for the method. Appreciate the quick and
concise help!

Phy

— Rob B. [email protected] wrote:

name nor can I
INFO, WARN, ERROR,

TIA,


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

On 2/22/08, Phy P. [email protected] wrote:

  .....

Logger#level actually takes an integer. Maybe something like this:

if Logger::Severity.const_defined?(arg)
mylog.level = Logger::Severity.const_get(arg)
else
puts “Debug level must be one of
#{Logger.Severity.constants.join(‘,’).”
end


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/