From: Sean O'Halpin Date: 2012-01-20T10:25:32+09:00 Subject: Re: Dynamically Calling a Class Method On Fri, Jan 20, 2012 at 1:15 AM, Doug Jolley wrote: > I need to dynamically call a class method (i.e., unless there is some > other way, the name of the class method should be contained in a > variable).  I have come up with the way illustrated in the example shown > below.  The program is in the file, 'test1'.  The relevant method is in > the file, 'Test1a.rb'. I use 'eval' which (I believe) is frowned upon. > Does anyone have a better way of accomplishing this objective?  Thanks > for any input. > >     ... doug > > $ ls > test1  Test1a.rb > $ cat Test1a.rb > class Test1a >  def Test1a.howdy() >    return 'Hello, world!' >  end > end > $ cat test1 > #!/usr/bin/ruby > > require './Test1a.rb' > myvar='howdy' > puts(eval("Test1a.#{myvar}()")) > $ ./test1 > Hello, world! > $ > > -- Use #send, e.g. myvar = "howdy" Test1a.send(myvar)