Calling a method whose name I only know at run-time

Hi folks,

I have a handful of methods that perform operations on chunks of data.
Which of these methods is called is specified in a YAML configuration so
I only know the method names at run-time, which are, of course, strings.
I am familiar with eval but would like to avoid using it to keep my code
safe. Is there another way I can do it?

Thanks,

Chad.

···

--
Posted via http://www.ruby-forum.com/.

Oops, solved it. Sorry, I missed Object#method the first time around.
8)

···

--
Posted via http://www.ruby-forum.com/.

And there is the Object#send that will do what you want, i.e.
any_object.send("method1", arg1, arg2)

or

any_object.send("method1", *args)

(if send insists on symbols for method names, use String#to_sym)

···

On 2/3/07, Chad Thatcher <chad@zulu.net> wrote:

Oops, solved it. Sorry, I missed Object#method the first time around.
8)

Hi --

···

On Sat, 3 Feb 2007, Jan Svitok wrote:

On 2/3/07, Chad Thatcher <chad@zulu.net> wrote:

Oops, solved it. Sorry, I missed Object#method the first time around.
8)

And there is the Object#send that will do what you want, i.e.
any_object.send("method1", arg1, arg2)

or

any_object.send("method1", *args)

(if send insists on symbols for method names, use String#to_sym)

It doesn't; you can use either.

David

--
Q. What is THE Ruby book for Rails developers?
A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black\)
    (See what readers are saying! http://www.rubypal.com/r4rrevs.pdf\)
Q. Where can I get Ruby/Rails on-site training, consulting, coaching?
A. Ruby Power and Light, LLC (http://www.rubypal.com)

It looks like send is actually more appropriate for my needs, thanks,
I'll give it a go.

···

--
Posted via http://www.ruby-forum.com/.