Когда я использую С# или Perl, есть некоторые полезные инструменты, такие как StyleCop, FxCop, Perl:: Critic и Perltidy. Они могут автоматически проверять или форматировать мой код. Тогда есть ли какие-либо эквивалентные инструменты для Ruby или Rails? Я нашел некоторые инструменты в Google, но я чувствовал, что они не поддерживаются так часто.
Проверка стиля кодирования или форматирование кода для Ruby/Rails
Ответ 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 - это хорошая коллекция библиотек. Стоит упомянуть в дополнение к рубиновой панели инструментов, поскольку они часто используются вместе (и написаны той же группой людей).
Что касается форматировщиков, то каждый раз так часто я смотрю, чтобы увидеть, появились ли какие-либо из них, но ответа по-прежнему нет. Насколько автоиндексирован, что любой достойный редактор может сделать или имеет плагин уже, никаких форматов не существует, насколько мне известно. Я слышал, что люди объясняют это рубином, который трудно разобрать, но рубиновые парсеры существуют, поэтому кто знает, почему это так.