我使用gem 'rubocop', '~> 0.81.0'
,当我试图创建一个自定义的rubocop文件如下:
lib/custom_cops/no_timecop.rb
return unless defined?(::RuboCop)
module CustomCops
class NoTimecop < ::RuboCop::Cop::Base
MSG = "`Timecop` の代わりにRails標準の `ActiveSupport::Testing::TimeHelpers` が使えませんか?".freeze
def on_send(node)
if node.source.include?("Timecop") && node.receiver.const_name == "Timecop"
add_offense(node)
end
end
end
end
字符串
我遇到了一个错误uninitialized constant RuboCop::Cop::Base
如何修复此错误?
我不知道我可能错过了什么,我希望得到一些有用的反馈。谢谢你,谢谢
1条答案
按热度按时间ct3nt3jp1#
您使用的是Rubocop的旧版本,
0.81.0
的发布时间比three years ago的发布时间要长,而且该版本确实没有Rubocop::Cop::Base
类。相反,自定义cop必须从另一个名为Rubocop::Cop::Cop
的类继承。也就是说,您有三种选择:
1.将您的自定义复制更改为从
Rubocop::Cop::Cop
继承。1.将Rubocop依赖项至少更新为
0.87.0
,该版本引入了Rubocop::Cop::Base
类,但仍有三年的历史。1.或者趁机将Rubocop更新至最新版本。在撰写本文时,维护人员建议使用
gem 'rubocop', '~> 1.54', '>= 1.54.2'
。当然,我建议使用最新版本,但这可能需要一些努力,因为一些警察改变了,新的被添加,你将需要更新你的代码,以修复所有新发现的罪行。