Joe Van Dyk
9/11/2006 11:22:00 PM
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