From: Patrick Ritchie Date: 2006-07-26T06:14:41+09:00 Subject: Re: Defining a method with an argument with a default value As long as we're throwing around options... > define_method(:initialize) do |*values| > @value = values.shift > unless @value.length == 0 > raise ArgumentError, "wrong number of arguments (#{values.size} for > 0)" > end > end > define_method(:initialize) do |*values| raise ArgumentError, "wrong number of arguments (#{values.size} for 0)" if values.length > 1 @value = values.first end Cheers! Patrick