- PVSM.RU - https://www.pvsm.ru -
Начиная с Руби версии 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
Нажмите здесь для печати.