I was poking through the Rails code today and stumbled upon this snippet:
new_date(*::Date._parse(string, false).values_at(:year, :mon, :mday))
What does the asterisk-double-colon (or splat-double-colon if you will) in *::Date do?
Presumably it has something to do with the scope of a particularly-namespaced Date class… but it’s necessary enough for the author to include it rather than just use the standard Date class.
I was reading the code wrong; it’s not a “*::” operator at all.
Here’s what’s happening:
Dateclass in the global scope (::Date)_parse()to get a hash of valuesvalues_atto turn the hash into an arraynew_date(), passing the array elements in for itsyear,mon, andmdayarguments.The lack of space between the
*and::operators made it confusing. :-\