[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

passing function into another function

Joe Van Dyk

9/11/2006 11:04:00 PM

Hi,

I couldn't work out the syntax for the following:

class Reports
def self.This; end
def self.That; end
end

def do_something_with_a_report report
# calls Reports::This or Reports::That, dtermined by what report is
# something like report.call ?
end

I want to do something like:

do_something_with_a_report Reports::This

But that calls Reports::This and sends that value to the
do_something_with_a_report function.

In other words, I want to do something like passing a function pointer
to a function in C.

2 Answers

Ara.T.Howard

9/11/2006 11:18:00 PM

0

Joe Van Dyk

9/11/2006 11:22:00 PM

0

On 9/11/06, ara.t.howard@noaa.gov <ara.t.howard@noaa.gov> wrote:
> On Tue, 12 Sep 2006, Joe Van Dyk wrote:
>
> > Hi,
> >
> > I couldn't work out the syntax for the following:
> >
> > class Reports
> > def self.This; end
> > def self.That; end
> > end
> >
> > def do_something_with_a_report report
> > # calls Reports::This or Reports::That, dtermined by what report is
> > # something like report.call ?
> > end
> >
> > I want to do something like:
> >
> > do_something_with_a_report Reports::This
> >
> > But that calls Reports::This and sends that value to the
> > do_something_with_a_report function.
> >
> > In other words, I want to do something like passing a function pointer
> > to a function in C.
> >
>
> harp:~ > cat a.rb
> class Reports
> def self.This; p 'This'; end
> def self.That; p 'That'; end
> This = method 'This'
> That = method 'That'
> end
>
> def do_something_with_a_report report
> report.call
> end
>
> do_something_with_a_report Reports::This
> do_something_with_a_report Reports::That
>
>
> harp:~ > ruby a.rb
> "This"
> "That"
>
> you could also just
>
> do_something_with_a_report Reports::method('This')
> do_something_with_a_report Reports::method('That')

Ah, Object#method. Thank you both!

Joe