Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > A proper Ruby way to call a procedure by name

Reply
Thread Tools

A proper Ruby way to call a procedure by name

 
 
John Small
Guest
Posts: n/a
 
      12-14-2008
I know how to do this using a case statement but I want to know if
there's a more Rubyesque way of doing things.

I'm screen scraping from a lot of different sources. They all have much
same data but it's presented in different ways with different access
methods. I use scRubyt to do the scraping and define most of the setup
for each way of presenting things in hashes which are read in from yaml
files. That way I can nearly DRY everything up into a few simple Ruby
routines with all the differences between the websites extracted into
data files.

But there's one area I'm not satisfied with because some cases are so
different from the others that I have to write special routines just
for them. That's ok and I can name the routines to be used for those
cases in the yaml file. Then when the yaml config file is read in I can
use a switch statement to tell me how to process the data from each site
along the lines of

result = case value
when name1_from_yaml: result1(param1,param2)
when name2_from_yaml: result2(param1,param2)
etc
end

which is fine and dandy but what I really want to do is to be able to
put the name of the function to call into the yaml data file and then
somehow get to

result = function_named_in_yaml_file(param1,param2)

How do I do this in Ruby? In other words I want a string or symbol to
invoke a procedure without going via a case statement.

Ta

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

 
Reply With Quote
 
 
 
 
Tim Hunter
Guest
Posts: n/a
 
      12-14-2008
John Small wrote:
> I know how to do this using a case statement but I want to know if
> there's a more Rubyesque way of doing things.
>
> I'm screen scraping from a lot of different sources. They all have much
> same data but it's presented in different ways with different access
> methods. I use scRubyt to do the scraping and define most of the setup
> for each way of presenting things in hashes which are read in from yaml
> files. That way I can nearly DRY everything up into a few simple Ruby
> routines with all the differences between the websites extracted into
> data files.
>
> But there's one area I'm not satisfied with because some cases are so
> different from the others that I have to write special routines just
> for them. That's ok and I can name the routines to be used for those
> cases in the yaml file. Then when the yaml config file is read in I can
> use a switch statement to tell me how to process the data from each site
> along the lines of
>
> result = case value
> when name1_from_yaml: result1(param1,param2)
> when name2_from_yaml: result2(param1,param2)
> etc
> end
>
> which is fine and dandy but what I really want to do is to be able to
> put the name of the function to call into the yaml data file and then
> somehow get to
>
> result = function_named_in_yaml_file(param1,param2)
>
> How do I do this in Ruby? In other words I want a string or symbol to
> invoke a procedure without going via a case statement.
>
> Ta
>
> John Small


ri Object#__send__

obj.__send__(method_name, arg1, arg2...)

--
RMagick: http://rmagick.rubyforge.org/

 
Reply With Quote
 
 
 
 
John Small
Guest
Posts: n/a
 
      12-15-2008
Tim

OK, thanks for that. I knew it had to be simple

>> John Small

>
> ri Object#__send__
>
> obj.__send__(method_name, arg1, arg2...)


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

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
procedure call name vs.association_list ambiguity root VHDL 2 07-12-2012 08:36 AM
Proper/best way to merge PDFs from Ruby? Hal Fulton Ruby 1 11-05-2009 02:20 PM
'Procedure or function <stored procedure name> has too many arguments specified',,,ARGH! Mike P ASP .Net 0 06-19-2006 01:19 PM
Create a Desktop Icon with proper icon name, not URL name Bodi Javascript 1 11-18-2003 02:40 AM
proper name for one who uses ruby Kurt M. Dresner Ruby 3 08-23-2003 02:35 PM



Advertisments