Am I reading this right that it only applies if your hash key is a symbol? So really, the hash rocket isn't dead?
Correct. It is wonderful sugar, but somewhat limiting. Realistically, you need to know both syntaxes. irb(main):001:0> hash={:"symbol with space" => nil} => {:"symbol with space"=>nil} irb(main):002:0> hash={"symbol with space": nil} SyntaxError: (irb):2: syntax error, unexpected ':', expecting tASSOC hash={"symbol with space": nil} ^ from /usr/bin/irb1.9.1:12:in ` ' irb(main):003:0> hash={"symbolwithoutspace": nil}…
The new syntax works only with conventional symbols (no quotes), not with any other key type, so no integers, strings, objects etc. For everything else, you can fall back to the original syntax. You can even mix then if you really feel the need (yech!)
That said, for almost all use cases hashes use symbols as keys, and for these cases the new syntax is much cleaner and I'm glad to see it