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

Jun*_*Ito 18 ruby coding-style ruby-on-rails

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

N.N*_*.N. 24

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

rubocop

rubocop是一个

基于Ruby样式指南的 Ruby代码样式检查器.

安装

您可以将其安装为gem:

gem install rubocop
Run Code Online (Sandbox Code Playgroud)

(以上可能需要sudo根据您的设置为命令添加前缀.)

用法

通过从命令行运行具有相同名称的命令来使用rubocop.如果您提供文件作为参数,rubocop会检查这些文件.如果您提供目录作为参数rubocop以递归方式检查目录中的Ruby文件,即在给定目录及其所有子目录中.如果不提供参数,则以递归方式检查工作目录.

这是一个例子.给出以下文件

say="I am not in style"
puts(say)

['cow','cat','cake'].each{|i| print i+' '}
Run Code Online (Sandbox Code Playgroud)

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是一种检查代码风格的工具.它可以与Rake集成.

安装

您可以将其安装为gem:

gem install cane
Run Code Online (Sandbox Code Playgroud)

(以上可能需要sudo根据您的设置为命令添加前缀.)

用法

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


And*_*imm 11

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

此外,打开警告可以检查某些类型的错误代码.有这样做$VERBOSE = true或通过的方式之一列在这里.