Hi -- On Tue, 6 Nov 2007, Fernando Cacciola wrote: > Hi people, > > I often see hashes used as a form of named parameters, with some variations. > However, I couldn't find the idiom properly explained anywhere. > I'm just missing it? Where is it? > > Would anyone like to explain the idiom here? specially, when, why and how it > is recommended. You pass a hash to the method, using pre-determined keys that serve as pseudo-keywords. For example: enroll(:applicant => person, :date => Time.now, :status => "admin") (Notice that I don't have to wrap the hash in curly braces. The rule is that if a hash is the last thing in the argument list, you can drop the braces.) The "why" part of it is that it gives the caller a way to (a) document what the arguments are for a little bit, and (b) not worry about the order of arguments, since hash keys can appear in any order. > It worries me that while it adds clarity at the point of call, it takes it > away at the function defintion point, so I haven't dare to use it yet. It's a bit wordier than plain local variable names, but usually worth the trade-off if you think it's important to make things a little easier for the caller. Note that in 1.9, my example could be written as: enroll(applicant: person, date: Time.now, status: "admin") David -- Upcoming training by David A. Black/Ruby Power and Light, LLC: * Advancing With Rails, Edison, NJ, November 6-9 * Advancing With Rails, Berlin, Germany, November 19-22 * Intro to Rails, London, UK, December 3-6 (by Skills Matter) See http://www.rubypal.com for details!