From: Ryan Leavengood Date: 2005-06-05T03:07:34+09:00 Subject: Re: Calling a procedure with dinamyc name Marcelo Paniagua wrote: > Hi there! > > I'm using Kirbybase database and it has the peculiar way to access > fields data though methods. Is it posible to call such methods > passing the fieldname in a dinamic way? > > instead of > > client_id = table.client_id > > I would like to use sometime like > > field = 'client_id' > client_id = table.field or something like that. There are at least two basic options: 1. Call Object#send: field = 'client_id' client_id = table.send(field) 2. Use Object#method to get a method, then call it: field = 'client_id' method = table.method(field) method.call > This is also applicable to a program that I'm developing, in which I > want to find if a class has a given method... for example, I want to > find if a class Card has an "onplay" method. > Thanks You can ask an instance of Card if it responds to that method: card = Card.new if card.respond_to?('onplay') # Do something end You may also want to research the method 'method_missing' which allows for a lot of interesting tricks. Regards, Ryan