Подтвердить что ты не робот

Проверка стиля кодирования или форматирование кода для Ruby/Rails

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

4b9b3361

Ответ 1

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

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

Ответ 2

Я пробовал два разных инструмента: rubocop и Cane. В тесте я обнаружил, что rubocop дает почти в два раза больше предупреждений, чем трость (и rubocop сообщает все, что сообщает Кейн). Итак, я рекомендую rubocop.

rubocop

rubocop - это

Проверка стиля рубинового кода на основе Ruby Style Руководство.

Установка

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

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 - это инструмент для проверки стиля кода. Это может быть интегрировано с Rake.

Установка

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

gem install cane

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

Использование

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

Ответ 3

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

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