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解析器确实存在 ,所以谁知道为什么会这样。