![]() |
Passing method name to method?
Hi, sorry if this isn't phrased quite as it should be!
I want to have a generic 'find' method that can check to see if an object's attribute is true or false. Basically I want to pass the method name (param) to the list_by_param method but this doesn't seem to be working (I get an undefined local variable or method 'param' for main:Object) error. def list_by_param(param) puts "#{object.id}" if object.param == true end puts objects.list_by_param(param) Any idea where I'm going wrong? Thanks -- Posted via http://www.ruby-forum.com/. |
Re: Passing method name to method?
On 9/28/07, Arfon Smith <arfon.smith@gmail.com> wrote:
> Hi, sorry if this isn't phrased quite as it should be! > > I want to have a generic 'find' method that can check to see if an > object's attribute is true or false. > > Basically I want to pass the method name (param) to the list_by_param > method but this doesn't seem to be working (I get an undefined local > variable or method 'param' for main:Object) error. > > def list_by_param(param) > puts "#{object.id}" if object.param == true > end > > puts objects.list_by_param(param) > > I *think* what you are trying to do is def list_by_param(param) puts "#{object_id}" if object.send(param) == true end puts objects.list_by_param(:param) > Any idea where I'm going wrong? > > Thanks > -- > Posted via http://www.ruby-forum.com/. > > |
Re: Passing method name to method?
On 9/28/07, Arfon Smith <arfon.smith@gmail.com> wrote:
> I want to have a generic 'find' method that can check to see if an > object's attribute is true or false. > > Basically I want to pass the method name (param) to the list_by_param > method but this doesn't seem to be working (I get an undefined local > variable or method 'param' for main:Object) error. class Object def objid_if_param(param) "#{self.__id__}" if self.__send__(param) == true end end class Foo attr_accessor :foo end bar = Foo.new baz = Foo.new baz.foo = true [ bar, baz ].each do |ob| id = ob.objid_if_param(:foo) puts id if id end -austin -- Austin Ziegler * halostatue@gmail.com * http://www.halostatue.ca/ * austin@halostatue.ca * http://www.halostatue.ca/feed/ * austin@zieglers.ca |
Re: Passing method name to method?
Logan Capaldo wrote:
> On 9/28/07, Arfon Smith <arfon.smith@gmail.com> wrote: >> puts "#{object.id}" if object.param == true >> end >> >> puts objects.list_by_param(param) >> >> > I *think* what you are trying to do is > > def list_by_param(param) > puts "#{object_id}" if object.send(param) == true > end > > puts objects.list_by_param(:param) It works! Thanks. So I have to pass a symbol to the method to get this to work? -- Posted via http://www.ruby-forum.com/. |
| All times are GMT. The time now is 10:52 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.