Ruby анализатор исходного кода (что-то вроде Pylint) - PullRequest
17 голосов
/ 13 ноября 2008

Есть ли в Ruby какие-либо инструменты, аналогичные pylint для анализа исходного кода на наличие ошибок и простых стандартов кодирования?

Было бы неплохо, если бы его можно было интегрировать с cruisecontrolrb для непрерывной интеграции.

Или все пишут такие хорошие тесты, что им не нужны проверки исходного кода!

Ответы [ 7 ]

17 голосов
/ 13 ноября 2008

Я просмотрел несколько инструментов Ruby, доступных здесь

http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/

большинство инструментов были упомянуты webmat, но если вы хотите получить больше информации, я приведу довольно подробные примеры.

Я также настоятельно рекомендую использовать Metric-Fu, так как он дает вам возможность установить три наиболее популярных инструмента на основе гем / плагин и построен с учетом интеграции с cruisecontrolrb.

Создатель имеет отличный пост, который поможет вам быстро приступить к работе.

http://jakescruggs.blogspot.com/2008/04/dead-simple-rails-metrics-with-metricfu.html

В последнее время в инструментах Ruby было много активности, что, на мой взгляд, является хорошим признаком растущего и зрелого языка.

10 голосов
/ 13 ноября 2008

Проверьте это:

  • на Ruby Inside, статья, представляющая Towelie, Flay и Simian , все инструменты для поиска дублирования кода
  • reek : кодовый детектор запаха для Ruby
  • Roodi : проверяет стиль вашего кода Ruby
  • flog : анализатор сложности кода
  • rcov : даст вам C0 (если я правильно помню) анализ покрытия кода. Но будь осторожен. 100% покрытие очень дорого и не означает идеальный код.
  • heckle : изменяет ваш код тонкими способами и запускает ваш набор тестов, чтобы увидеть, поймает ли он его. Брутальный: -)

Поскольку все они являются инструментами командной строки, их можно интегрировать просто как задачи cc.rb. Просто выберите свой навык regex и выберите важную часть вывода.

Я рекомендую вам сначала опробовать их вручную, чтобы увидеть, хорошо ли они работают с вашей кодовой базой и нравится ли вам информация, которую они вам дают. После того, как вы найдете несколько, которые дают вам ценность, потратьте время на их интеграцию в ваш CC.

5 голосов
/ 13 ноября 2008

Один недавно обновленный интересный инструмент - Ruby Object-Oriented Design Inferometer - руди для краткости. Это на v1.3.0, так что я предполагаю, что он довольно зрелый.

Я сам не пробовал, потому что мой код, конечно, уже безупречен (ха).

Что касается тестового покрытия (о, дорогой, я тоже не пробовал) есть rcov

Также (смотрите, я определенно собираюсь попробовать некоторые из них сегодня. По крайней мере, один), возможно, вам стоит взглянуть на flog и flay для другого средства проверки стиля и поиска кандидатов на рефакторинг. 1013 *

2 голосов
/ 21 марта 2013

Метрики кода на веб-сайте ruby ​​toolbox.

2 голосов
/ 22 ноября 2008

Есть также встроенные предупреждения, которые вы можете быстро включить:

ruby -w

Или установить глобальную переменную $ VERBOSE в значение true в любой точке.

1 голос
/ 03 сентября 2014

Rubocop - широко используемый статический анализатор кода.

0 голосов
/ 21 мая 2009

Я только что выпустил Отлично, который реализует несколько проверок на Ruby-коде. Он объединяет roodi, reek и flog, а также добавляет некоторые специфичные для Rails проверки:

gem sources -a http://gems.github.com
sudo gem install simplabs-excellent

Может быть полезно ...

...