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.

Logger.const_get(arg)

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com

···

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

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

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

···

On 2/22/08, Phy Prabab <phyprabab@yahoo.com> wrote:

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

--
Rick DeNatale

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

Rob,

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

Phy

···

--- Rob Biedenharn <Rob@AgileConsultingLLC.com> wrote:

On Feb 22, 2008, at 5:14 PM, Phy Prabab wrote:
> 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

Logger.const_get(arg)

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com

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