Начиная с Руби версии 1.9, появился новый синтаксис для хешей. Если раньше мы писали нечто вот такое:
{:key => 'value', :key2 => 'value2'}
Сейчас это будет выглядеть вот так:
{key: 'value', key2: 'value2'}
Мне, лично, такое обновление очень нравится и я стараюсь использовать новый синтаксиис всегда, когда работаю с хешами в своих проектах на Руби. Некоторые проекты, над которыми я работаю в данный момент, уже имеют большое количество кода и в них синтаксис хешей все еще написан по старому. Решение, к которому я пришел, было написать конвертер, который заменит все места в которых используется старый способ работы с хешем. Таким образом, родился джем syntax_fix, который доступен на Github https://github.com/HeeL/syntax_fix. Релиз джема доступен на RubyGems https://rubygems.org/gems/syntax_fix.
Для установки джема просто запустите:
gem install syntax_fix
После успешной установки, вам будет доступна команда "syntax_fix". Вы можете сразу запустить данную команду без параметров с корневой директории вашего проекта, в результате синтаксис во всех файлах будет изменен на новый (включая вложенные файлы и директории). Вы можете воспользоваться опцией -v или --verbose чтобы скрипт был более информативным и выводил в консоли имена файлов, в которых были сделаны изменения.
Вот впринципе и все, ничего сложного. Изначально, идея была сделать джемку которая будет конвертировать не только хеши, но и лямбды, кейсы и т.д.