Проверка стиля кодирования или форматирование кода для 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, поскольку они часто используются вместе (и написаны одной и той же группой людей).

Что касается форматтеров, то время от времени я иду посмотреть, не появилось ли что-нибудь, но ответ по-прежнему нет. Кроме автоматического отступа, который любой достойный редактор может сделать или уже имеет плагин, никаких форматтеров, насколько мне известно, не существует. Я слышал, что люди приписывают это Рубину, который трудно разобрать, но рубиновые Парсеры существуют, Так кто знает, почему это.