On Tue, 13 Mar 2007, Peter Motzfeldt wrote: > Hi > > I am trying to create a method dynamically that has keyword arguments. > The variable properties is a hash like {:text => "Text", :something => > "something"}. > > My problem is that I want the method created to be able to take 0 or > more arguments. I know how to do this with an array, but is it possible > to do this with an hash and keyword arguments? > > I mean to write something else than |options| that makes the method able > to take 0 arguments as well as more arguments? > > # This method is in a class > def self.add_method(name, &block ) > define_method(name, &block) > end > > # The method add_method is called on an instance of the class > instance_of_generated_class.add_method(methodName) do > |options| > options = properties.merge(options) > > #some code > end def self.add_method name, &block define_method name do |*argv| options = argv.shift || {} options = properties.merge(options) # some code end end regards. -a -- be kind whenever possible... it is always possible. - the dalai lama