- PVSM.RU - https://www.pvsm.ru -

Ruby / Новый синтаксис хешей в Руби

Начиная с Руби версии 1.9, появился новый синтаксис для хешей. Давайте посмотрим, как можно моментально перевести на него весь проект. То есть, если раньше мы писали нечто вот такое:
{:key => 'value', :key2 => 'value2'}

Сейчас это будет выглядеть вот так:
{key: 'value', key2: 'value2'}

Мне, лично, такое обновление очень нравится и я стараюсь использовать новый синтаксиис всегда, когда работаю с хешами в своих проектах на Руби. Некоторые проекты, над которыми я работаю в данный момент, уже имеют большое количество кода и в них синтаксис хешей все еще написан по старому. Решение, к которому я пришел, было написать конвертер, который заменит все места в которых используется старый способ работы с хешем. Таким образом, родился джем syntax_fix, который доступен на Github https://github.com/HeeL/syntax_fix [1]. Релиз джема доступен на RubyGems https://rubygems.org/gems/syntax_fix [2].
Для установки джема просто запустите:
gem install syntax_fix

После успешной установки, вам будет доступна команда «syntax_fix». Вы можете сразу запустить данную команду без параметров с корневой директории вашего проекта, в результате синтаксис во всех файлах будет изменен на новый (включая вложенные файлы и директории). Вы можете воспользоваться опцией -v или --verbose чтобы скрипт был более информативным и выводил в консоли имена файлов, в которых были сделаны изменения.
Вот впринципе и все, ничего сложного. Изначально, идея была сделать джемку которая будет конвертировать не только хеши, но и лямбды, кейсы и т.д. Если вы чувствуете в себе силы чтобы добавить одну из таких фич или исправить какой-то баг в существующем коде, не стесняйтесь форкать проект на Гитхабе https://github.com/HeeL/syntax_fix [1]

Автор: heel


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ruby/2396

Ссылки в тексте:

[1] https://github.com/HeeL/syntax_fix: https://github.com/HeeL/syntax_fix

[2] https://rubygems.org/gems/syntax_fix: https://rubygems.org/gems/syntax_fix