I have never seen this construct for building a hash. do_stuff(records: records)
Does this only work in a parameter list being sent to a method? Is it documented an
There are two things going on here. The { key: value }
syntax is new in Ruby 1.9. It is equivalent to { :key => value }
.
Also, Ruby methods have some syntactical sugar that allows you to pass in a hash literal as the last argument of the method without including the curly braces. This is not new in Ruby 1.9. So
do_stuff(key: value)
Is equivalent to
do_stuff({ key: value })
Just to remind you, this only works if the hash is the last argument to the method.