Ruby / Rails的编码样式检查器或代码格式化程序

时间:2012-02-01 21:51:16

标签: ruby-on-rails ruby coding-style

当我使用C#或Perl时,有一些有用的工具,如StyleCop,FxCop,Perl :: Critic和Perltidy。他们可以自动检查或格式化我的代码。那么,Ruby或Rails有没有相同的工具?我在谷歌上找到了一些工具,但我觉得它们不经常维护。

3 个答案:

答案 0 :(得分:23)

我尝试过两种不同的工具:rubocop和Cane。在测试中,我发现rubocop提供的警告几乎是手杖的两倍(并且rubocop报告了Cane报告的所有内容)。所以,我推荐使用rubocop。

rubocop

rubocop

  

基于Ruby Style Guide的Ruby代码样式检查器。

安装

您可以将其安装为gem:

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是一种检查代码风格的工具。它可以是integrated with Rake

安装

您可以将其安装为gem:

gem install cane

(以上可能需要使用sudo作为命令的前缀,具体取决于您的设置。)

用法

要使用它,请在要检查的目录或文件上运行cane

答案 1 :(得分:11)

https://www.ruby-toolbox.com/categories/code_metrics的Ruby工具箱中列出了一些样式检查器。

此外,打开警告可以检查某些类型的错误代码。使用$VERBOSE = truelisted here的其中一种方式执行此操作。

答案 2 :(得分:1)

至于代码检查器,http://ruby.sadi.st/Ruby_Sadist.html是一个很好的库集合。值得一提的是除了红宝石工具箱,因为它们经常一起使用(并由同一群人编写)。

至于格式化程序,我经常会去看看是否有任何问题,但答案仍然是否定的。除了自动缩进之外,任何有价值的编辑都可以做或者已经有插件,我知道没有格式化器。我听说有人把它归咎于难以解析的ruby,但是ruby parsers do exist,所以谁知道为什么会这样。