草庐IT

ruby - Rubocop 是 "ruby -c"语法检查的超集吗?

我们进行了一项测试,找到应用程序中的每个Ruby文件并对其运行ruby-c。我们介绍了Rubocop并让它检查相同的文件列表。运行ruby-c的测试现在实际上是无用的,还是有一个失败模式的例子可以被ruby-c而不是Rubocop捕获?ruby-c的文档说:CausesRubytocheckthesyntaxofthescriptandexitwithoutexecuting.Iftherearenosyntaxerrors,Rubywillprint"SyntaxOK"tothestandardoutput.这是一个语法问题的例子:%echo"puts'helloworld">hot

ruby - 如何让 Rubocop 将某些错误视为警告而不是错误?

我想找到一种方法将警察从错误更改为警告,以便我可以改变处理输出的方式。我仍然想要输出以便我可以检查那些情况,但我不希望它们是错误的。然后,我可以根据需要更改有问题的代码或将其包装在特定的排除项中。我今天早上找到了答案并已将其标记为答案。 最佳答案 事实证明答案相当简单。您可以指定警察的严重程度:Metrics/MethodLength:Max:100Severity:warning这个问题最终变得有点愚蠢,因为我在文档中找到了我一直在寻找的答案。 关于ruby-如何让Rubocop将某些

ruby - rubocop 进攻但不确定哪里出了问题

我正在清理我继承的一些代码,有这一行,但老实说,我不确定rubocop试图告诉我的是什么错误。total_cost=tmp_totals.inject{|total,tmp_val|total+tmp_val}我收到这个错误app/models/item_count.rb:58:40:C:Nameinjectblockparams|acc,elem|看起来像这样:我只是想绕过这个警察。有什么想法告诉我要修复什么吗? 最佳答案 默认情况下,Rubocop希望您将这两个变量命名为acc和elem而不是total和tmp_val。你可以在

ruby - Rubocop:使用 next 跳过迭代

我正在从Rubocop获取Style/Next:Usenexttoskipiteration.用于执行类似操作的代码(使用一个非常人为的示例):tasks_running=[{name:'task1',done:false},{name:'task2',done:false}]tasks_done=[]tasks_running.eachdo|task|iftask[:done]unlesstasks_done.include?tasktasks_done我是仅在嵌套条件中使用next来跳过迭代。我不太明白如何满足这个标准。 最佳答案

ruby - VScode 上的 rubocop 不起作用。错误 "rubocop is not executable"

最近我在vscode上安装了rubocop。但是,它不起作用。错误消息如下。rubocopisnotexcutableexecutepathisempty!pleasecheckruby.rubocop.executePath我该如何解决?我搜索了一些文章,一直没有解决...比照。vscode-ruby-rubocophttps://github.com/misogi/vscode-ruby-rubocop 最佳答案 接受的答案对我不起作用。但是,我确实找到了jdarnok的评论关于这个GitHubissue这对我有用。首先,为了获

ruby-on-rails - 启用 rails 的 Rubocop 和 Style/IndentationConsistency

我正在将rubocop用于Rails5项目,并且我已将此添加到我的.rubocop.yml中:Rails:Enabled:true但是我注意到规则(Style/IndentationConsistency)失败了,我必须像这样明确地添加它:Style/IndentationConsistency:EnforcedStyle:rails发生是正常的还是我做错了什么? 最佳答案 您不能只添加Rails:Enabled:true,您需要添加Rails单独的配置,例如(RailsActionFilter、FindEach、FindBy)。请

ruby - 如何使用 Syntastic Vim 插件和 Rbenv 启用 Rubocop?

我想使用Syntastic启用Rubocop检查器。我已经设置它有一个检查器并给出了可执行文件的路径。虽然:SyntasticInfo报告它不是一个活跃的检查器。此外,:SyntasticCheckrubocop报告说rubocop不是可用的检查器。我还需要其他设置吗?会不会是rubocop--version给出的警告信息导致的?.vimrc设置letg:syntastic_ruby_checkers=['rubocop','mri']letg:syntastic_ruby_rubocop_exec='/Users/jjasonclark/.rbenv/shims/rubocop'ru

ruby-on-rails - 使用 guard-rspec 时如何忽略 rubocop 检查?

当我添加一个guard-rspecgem并将Guardfile设置为:guard:rspec,cmd:'bundleexecrspec'dowatch('spec/spec_helper.rb'){"spec"}watch('config/routes.rb'){"spec/routing"}watch('app/controllers/application_controller.rb'){"spec/controllers"}watch(%r{^spec/.+_spec\.rb$})end然后运行rubocop检查:rakerubocop:rubocop它显示:Guardfile:

ruby - RuboCop 在使用 'Hash.new' 时提示

当我使用Hash.new时,RuboCop会提示,并建议我改用散列文字。有没有办法让RuboCop忽略Hash.new的使用?更具体地说,我可以编辑我的.rubocop.yml配置以允许使用Hash.new而不会引起任何投诉吗? 最佳答案 您可以禁用Rubocop::Cop::Style::EmptyLiteralcop在rubocop.yml文件中:#.rubocop.ymlStyle:EmptyLiteral:false或者如果你只想忽略某一行:hsh=Hash.new#rubocop:disableStyle/EmptyLit

ruby rubocop : how to freeze an array constant generated with splat

我正在分配一个这样的数组常量:NUMS=*(2..9)Rubocop说C:卡住分配给常量的可变对象。NUMS=*(2..9)^^^^^所以我试试NUMS=*(2..9).freezeRubocop说C:卡住分配给常量的可变对象。NUMS=*(2..9).freeze^^^^^^^^^^^^尝试过NUMS=(*(2..9)).freezeRubocop说E:意外的标记tRPAREN(使用Ruby2.0解析器;在AllCops下使用TargetRubyVersion参数进行配置)NUMS=(*(2..9)).freeze^尝试过NUMS=[1,2,3,4,5,6,7,8,9].freeze