From: Brian Candler Date: 2009-07-22T19:29:14+09:00 Subject: Re: Default parameter values for methods in Ruby 1.9 I単aki Baz Castillo wrote: > Hi, I expected that the following is valid in Ruby 1.9: > > def get_element(auid, document=nil, selector, check_etag=true) > [...] > end > > However I get an error: > > syntax error, unexpected '=', expecting ')' (SyntaxError) ..., > element_selector, check_etag=true) > ^ > > Thanks for any tip. def get_element(auid, *rest) case rest.size ... etc end Are you saying that get_element(1,2) would use auid=1 and selector=2, but get_element(1,2,3) would use auid=1 and document=2 and selector=3? If so it might be slightly better documented as def get_element(auid, document_or_selector, *rest) case rest.size when 0 document = nil selector = document_or_selector check_etag = true when 1 document = document_or_selector selector = rest[0] check_etag = true when 2 document = document_or_selector selector = rest[0] check_etag = rest[1] else raise ArgumentError, "wrong number of arguments (#{rest.size}+2)" end ... etc end -- Posted via http://www.ruby-forum.com/.