From: Stefano Crocco Date: 2007-04-17T06:16:01+09:00 Subject: Re: iterate through an array of method names to an object 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 # > (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