ruby 我如何开发自定义cop并确保它通过“zeitwerk:check”

oknwwptz  于 9个月前  发布在  Ruby
关注(0)|答案(2)|浏览(105)

根据这个网站https://docs.rubocop.org/rubocop/development.html#implementation,它说cop代码将是这样的。

module RuboCop
  module Cop
    module Style
      class SimplifyNotEmptyWithAny < Base
        ...
      end
    end
  end
end

字符串
我在Project Root/lib/rubocop/cop/style/simplify_not_empty_with_any.rb中跟踪了它。
但是当我命令rails zeitwerk:check时,它不工作。

Hold on, I am eager loading the application.
bin/rails aborted!
NameError: uninitialized constant RuboCop::Cop::Style::Base (NameError)

      class SimplifyNotEmptyWithAny < Base
                                      ^^^^
Did you mean?  Base64


我该怎么解决呢?
你有什么想法吗?
我试过reuiqre 'rubocop'或要求'rubocop/cop/base',但它没有解决。
[更新]我尝试了class SimplifyNotEmptyWithAny < RuboCop::Cop::Base,但得到了同样的错误。

ac1kyiln

ac1kyiln1#

我觉得你应该试试这个,

module RuboCop
  module Cop
    module Style
      class SimplifyNotEmptyWithAny < RuboCop::Cop::Base
      ...
      end
    end
  end
end

字符串

zpgglvta

zpgglvta2#

我找到了这个答案。
1.文件路径应该像这样lib/rubo_cop/cop/style/simplify_not_empty_with_any.rb(因为RuboCop的Pascal大小写)

  • 它需要行require 'rubocop'在开始。
  • 但是如果你有2个自定义cop文件,就不需要写第二个文件了。所以我建议你最好用config/environments/test.rb来写。

友情提示:https://github.com/rubocop/rubocop/discussions/12517

相关问题