Ruby源代码分析器(类似于pylint)

Ruby是否有任何沿着pylint的工具来分析错误和简单编码标准的源代码?

如果它可以与cruisecontrolrb集成以实现持续集成,那就太好了。

或者每个人都写了这么好的测试,他们不需要源代码检查器!

我回顾了一些可用的Ruby工具

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

webmat提到了大多数工具,但如果你想了解更多信息,我会深入了解一些例子。

我也强烈推荐使用Metric-Fu,它为您提供了3种更受欢迎的工具的gem/插件安装,并且考虑到了cruisecontrolrb集成。

创建者有一个很棒的post,可以帮助您立即启动和运行。

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

最近Ruby工具中有很多活动,我认为这是一种成长和成熟语言的好兆头。

看看这些:

  • 在Ruby Inside上, 这篇文章介绍了Towelie,Flay和Simian ,它们都是查找代码重复的工具
    • 毛巾先生
    • 去皮
    • Simian (一种支持Ruby和其他语言的更通用的工具)
  • reek :Ruby的代码味道检测器
  • Roodi :检查Ruby代码的样式
  • flog :代码复杂度分析器
  • rcov :会给你一个C0 (如果我没记错)代码覆盖率分析。 但要小心。 100%的覆盖率非常昂贵,并不意味着完美的代码。
  • heckle :以微妙的方式更改代码并运行测试套件以查看它是否能够捕获它。 野蛮的:-)

由于它们都是命令行工具,因此它们都可以简单地集成为cc.rb任务。 只需提取你的正则表达式技巧来选择输出的重要部分。

我建议你先手动试用它们,看看它们是否与你的代码库配合得很好,如果你喜欢它们给你的信息。 一旦找到一些能给你带来价值的东西,那么就花时间将它们整合到你的cc中。

最近更新的一个有趣的工具是Ruby Object Oriented Design Inferometer – 简称roodi。 它是在v1.3.0,所以我猜它已经相当成熟了。

我自己没有尝试过,因为我的代码当然已经无可非议了(哈)。

至于测试覆盖范围(哦,亲爱的,我也没有试过这个)有rcov

另外(看,我今天肯定会尝试其中的一些。至少一个)你可能会关注另一个风格检查器和重构候选者查找器的flog和flay 。

您还可以通过快速启用内置警告:

ruby -w 

或者在任何时候将全局变量$ VERBOSE设置为true。

ruby工具箱网站上的代码指标 。

Rubocop是一种广泛使用的静态代码分析器。

我刚刚发布了Excellent,它实现了对Ruby代码的几个检查。 它结合了roodi,reek和flog,还添加了一些Rails特定的检查:

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

可能会有所帮助……