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

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

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

此外,打开警告可以检查某些类型的错误代码。 使用$VERBOSE = true或通过此处列出的方法之一执行此操作 。

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

rubocop

rubocop是一个

基于Ruby样式指南的 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:缺少编码注释。
 C:1:操作员'='缺少周围空间。
 C:4:操作员'+'缺少周围空间。
 C:4:'{'缺少周围空间。
 C:4:'}'左侧缺少空格。
 C:4:逗号后缺少空格。
 C:4:逗号后缺少空格。
 C:1:当您不需要字符串插值或特殊符号时,首选单引号字符串。

检查了1个文件,检测到8个攻击

请注意,rubocop可以输出Emacs可以通过-e选项解析的警告。

甘蔗

Cane是一种检查代码风格的工具。 它可以与Rake集成 。

安装

您可以将其安装为gem:

 gem install cane 

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

用法

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

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

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