cammo
4/17/2007 12:29:00 PM
But also the send method will expect to get a symbol not a string so
you'll need to do something like
functions.each do |funk|
funk.to_sym
puts name_o_my_object.send(funk)
end
I tried that in irb and it worked so fingers crossed should work for
you too.
Cam
On Apr 17, 7:16 am, Stefano Crocco <stefano.cro...@alice.it> wrote:
> Alle lunedì 16 aprile 2007, Skye Weir-mathewes ha scritto:
>
>
>
> > I've been trying to create a iterator that will run through and array of
> > method names, sending each one to an object. For some reason the object
> > doesn't like the method names if I send them via an iterator, but if I
> > spell each one out, it works fine. When I try to use the iterator I get
> > and error indicating that ruby doesn't think my method names actually
> > name a method.
>
> > Here's some of my code:
>
> > functions = ["addHeadersAndFooters", "addListNameToSubject", "admin",
> > "allowCrossPosting ", "allowDuplicatePosts ", "allowInfo ",
> > "anyoneCanPost "]
>
> > functions.each do |funk|
> > puts name_o_my_object.funk
> > end
>
> > gives me the following error:
>
> > undefined method `funk' for #<SOAP::Mapping::Object:0x5585bd8>
> > (NoMethodError)
>
> > but if I write somthing like:
>
> > functions.each do |funk|
> > puts name_o_my_object.addHeadersAndFooters
> > end
>
> > the iterator works fine, so... what's up with that?
>
> In the first case, you write name_o_my_object.funk. In this case, ruby tries
> to call a method called funk on the object name_o_my_object. What you need to
> do is:
>
> puts name_o_my_object.send(funk)
>
> I hope this helps
>
> Stefano