Проверка стиля кодирования или форматирование кода для Ruby / Rails
когда я использую C# или Perl, есть некоторые полезные инструменты, такие как StyleCop, FxCop, Perl::Critic и Perltidy. Они могут автоматически проверять или форматировать мой код. Тогда есть ли эквивалентные инструменты для Ruby или Rails? Я нашел некоторые инструменты в Google, но я чувствовал, что они не поддерживаются так часто.
3 ответов
есть некоторые шашки стиля, перечисленные в Ruby toolbox в https://www.ruby-toolbox.com/categories/code_metrics .
кроме того, включение предупреждений может проверить наличие некоторых видов плохого кода. Сделайте это с $VERBOSE = true
или одним из способов перечисленные здесь.
Я пробовал два разных инструмента: rubocop и тростника. В тесте я обнаружил, что rubocop дает почти в два раза больше предупреждений, чем cane (и rubocop сообщает Все, что сообщает Cane). Итак, я рекомендую rubocop.
rubocop
rubocop это
Ruby проверки стиля кода на основе Стиль Ruby Руководство.
установка
вы можете установить его в качестве джем:
gem install rubocop
(выше может потребоваться префикс команды с sudo
в зависимости от вашей установки.)
использование
rubocop используется при выполнении команды с тем же именем из командной строки. Если вы предоставляете файлы в качестве аргументов rubocop проверяет эти файлы. Если вы предоставляете каталоги в качестве аргументов rubocop, проверьте файлы Ruby в каталогах рекурсивно, т. е. в заданных каталогах и всех их подкаталогах. Если вы не предоставляете аргумента, он проверяет рабочий каталог рекурсивно.
вот пример. Учитывая следующий файл
say="I am not in style"
puts(say)
['cow','cat','cake'].each{|i| print i+' '}
robucop сообщает следующее:
$ rubocop ~/test/rubocop.rb == /home/nn/test/rubocop.rb == C: 1: Missing encoding comment. C: 1: Surrounding space missing for operator '='. C: 4: Surrounding space missing for operator '+'. C: 4: Surrounding space missing for '{'. C: 4: Space missing to the left of '}'. C: 4: Space missing after comma. C: 4: Space missing after comma. C: 1: Prefer single-quoted strings when you don't need string interpolation or special symbols. 1 files inspected, 8 offences detected
обратите внимание, что rubocop может выводить предупреждения, которые Emacs может анализировать через .
Кейн
Камыш-инструмент для проверки стиля кода. Это может быть интегрирован с граблями.
установка
вы можете установить его в качестве джем:
gem install cane
(выше может потребоваться префикс команды с sudo
в зависимости от вашей установки.)
использование
использовать его run cane
в каталогах или файлах, которые вы хотите проверить.
Как в шашки кода http://ruby.sadi.st/Ruby_Sadist.html Хороший набор библиотек. Стоит упомянуть в дополнение к Ruby toolbox, поскольку они часто используются вместе (и написаны одной и той же группой людей).
Что касается форматтеров, то время от времени я иду посмотреть, не появилось ли что-нибудь, но ответ по-прежнему нет. Кроме автоматического отступа, который любой достойный редактор может сделать или уже имеет плагин, никаких форматтеров, насколько мне известно, не существует. Я слышал, что люди приписывают это Рубину, который трудно разобрать, но рубиновые Парсеры существуют, Так кто знает, почему это.