В рубиновых 1.9 там способ определить этот хеш с новым синтаксисом?
irb> { a: 2 }
=> {:a=>2}
irb> { a-b: 2 }
SyntaxError: (irb):5: syntax error, unexpected tLABEL
{ a-b: 2 }
^
со старым это работает:
irb> { :"a-b" => 2 }
=> {:"a-b"=>2}
Существуют некоторые законные символы, которые не могут быть использованы с новым синтаксисом. Я не могу найти ссылку, но кажется, что сопоставление имени символа / ^ ^ [A-ZA-Z _] [A-ZA-Z_0-9] * [!?]? $ /
разрешено с Новый синтаксис. Последний символ может быть особенным символом "!" или же "?".
Для любого символа, который не соответствует этим ограничениям, вы должны использовать синтаксис Ruby 1.8, : «Мое-символ имени»