This is actually a rather clever hack made it into ruby 1.9.
Basically, &
in front of a variable in ruby coerces it into a proc. It does that by calling to_proc
. Some clever fellow (first time I saw this was in _whys code, but I won’t credit him cause I don’t know if he came up with it) added a to_proc
method to Symbol
, that is essentially {|obj| obj.send self}
.
There aren’t many coercians in ruby, but it seems like all of them are mostly used to do hacks like this (like !! to coerce any type into a boolean)