Средство проверки стиля кодирования или средство форматирования кода для Ruby / Rails - PullRequest
17 голосов
/ 02 февраля 2012

Когда я использую C # или Perl, есть несколько полезных инструментов, таких как StyleCop, FxCop, Perl :: Critic и Perltidy. Они могут проверить или отформатировать мой код автоматически. Тогда есть ли эквивалентные инструменты для Ruby или Rails? Я нашел некоторые инструменты в Google, но чувствовал, что они не так часто поддерживаются.

Ответы [ 3 ]

23 голосов
/ 21 февраля 2013

Я пробовал два разных инструмента: rubocop и Cane. В ходе теста я обнаружил, что rubocop дает почти вдвое больше предупреждений, чем тростник (а rubocop сообщает обо всем, что сообщает Cane). Итак, я рекомендую 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 может анализировать с помощью опции -e.

Cane

Cane - это инструмент для проверки стиля кода. Он может быть интегрирован с Rake .

Установка

Вы можете установить его как драгоценный камень:

gem install cane

(Приведенное выше может потребовать префикс команды с sudo в зависимости от настроек.)

* * Использование тысячи сорок-девять

Чтобы использовать его, запустите cane в каталогах или файлах, которые вы хотите проверить.

11 голосов
/ 02 февраля 2012

В панели инструментов Ruby перечислены некоторые элементы проверки стиля по адресу https://www.ruby -toolbox.com / Categories / code_metrics .

Кроме того, включение предупреждений может проверять некоторые виды плохого кода. Сделайте это с помощью $VERBOSE = true или одним из перечисленных здесь способов .

1 голос
/ 02 февраля 2012

Что касается проверки кода, http://ruby.sadi.st/Ruby_Sadist.html - хорошая коллекция библиотек. Стоит упомянуть в дополнение к панели инструментов ruby, поскольку они часто используются вместе (и написаны одной и той же группой людей).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...