最近在开发Cloud Insight API 时,发现一个可以检测 ruby 代码质量的工具-RubyCritic。
RubyCritic 集成 Reek, Flay 和 Flog这 3 个分析代码的工具,对你的 Ruby 代码进行静态分析并生成质量报告。
可以总览你的项目,并且可以对代码打分 (百分制)
根据各自的坏味道数量建立文件索引
对不同文件按照改动频率
、复杂度
、重复度
和坏味道
4 个维度进行综合评定代码质量等级
3. 可以查看具体的类文件中的代码质量问题
看一下 rubycritic(2.7.0) 指令
rubycritic --help
Usage: rubycritic [options] [paths]}
-p, --path [PATH] 设置质量报告存放的路径(默认: tmp/rubycritic)
-f, --format [FORMAT] 设置报告格式:
html (默认)
json
console
-s, --minimum-score [MIN_SCORE] 设置最小分数
-m, --mode-ci 使用CI模式(更快,但仅分析最后一次提交)
--deduplicate-symlinks 基于最后目标去除重复的符号链接
--no-browser 不使用浏览器打开html格式的报告
--suppress-ratings 压制质量评级
-v, --version 显示版本号
-h, --help 显示帮助信息
运行
bundle exec rubycritic
的效果如下图:
从上图也能看出 rubycritic 分析代码流程。
平时使用guard工具的同学,可以使用guard-rubycritic, 代码改动时会自动分析你的代码。 有兴趣的同学也可以将它集成到Jenkins CI。
在使用rubycritic
过程中,每次都要手动打开浏览器进行查看质量报告,太麻烦了。于是给它添加一个功能
目前仅支持 Linux 和 Mac OSX 系统:
支持 Linux 浏览器: Firefox(默认)
、Chrome
和 Chromium
支持 Mac OSX 浏览器: Safari(默认)
、Chrome
和 Firefox
ruby
gem 'rubycritic', github: 'superiorlu/rubycritic', branch: 'open_with_browser'
rubycritic -O chrome
即可。源代码:https://github.com/superiorlu/rubycritic/tree/open_with_browser
本文简单介绍了rubycritic
和用法,可能某些知识点会有所遗漏,不足之处请大家指正。
目前rubycritic
已经更新到了2.7.0
, 已经默认使用浏览器打开 html 格式的报告了。