From: Dr Nic Date: 2006-07-25T21:07:42+09:00 Subject: Re: Defining a method with an argument with a default value [Warning: Anal retentive refactoring ahead] define_method(:initialize) do |*values| case values.size when 0..1 @value = values.first else raise ArgumentError, "wrong number of arguments (#{values.size} for 0)" end end or perhaps define_method(:initialize) do |*values| @value = values.shift unless @value.length == 0 raise ArgumentError, "wrong number of arguments (#{values.size} for 0)" end end Too... many... options... ahh! -- Posted via http://www.ruby-forum.com/.