Ruby on rails 如何在自定义COP中识别全局Rails设置?
我的警察:Ruby on rails 如何在自定义COP中识别全局Rails设置?,ruby-on-rails,ruby,rubocop,Ruby On Rails,Ruby,Rubocop,我的警察: #lib/rubocop/cop/myproject/myu cop.rb 需要“rubocop” RuboCop模块 模块通用作战图 模块MyProject 类MyCop
#lib/rubocop/cop/myproject/myu cop.rb
需要“rubocop”
RuboCop模块
模块通用作战图
模块MyProject
类MyCop
这个警察需要知道一些全局设置。例如,Rails.logger.log\u级别
但我有错误:1) 当我调用
Rails.logger.log\u level
2)
未初始化的常量Rails
-当我调用时:Rails.logger.log\u level
这是可以做到的还是一个愚蠢的想法?Rubocop是一个静态代码分析器。这意味着当您运行rubocop
命令时,它不会加载任何ruby环境,包括Rails。它只是读取ruby文件并将其作为文本文件进行分析
因此,简短的回答是:不,它不能用Rubocop实现。Rubocop是一个静态代码分析器。这意味着当您运行rubocop
命令时,它不会加载任何ruby环境,包括Rails。它只是读取ruby文件并将其作为文本文件进行分析
因此,简短的回答是:不,这不能用Rubocop实现。作为一个选项,您可以:
# lib/rubocop/cop/myproject/my_cop.rb
require 'rubocop'
module RuboCop
module Cop
module MyProject
class MyCop < RuboCop::Cop::Cop
# ...
end
end
end
end
#lib/rubocop/cop/myproject/myu cop.rb
需要“rubocop”
需要\u相对“../../../../../../config/environment”
RuboCop模块
模块通用作战图
模块MyProject
类MyCop
并调用
::Rails.logger.level
作为一个选项,您可以执行以下操作:
# lib/rubocop/cop/myproject/my_cop.rb
require 'rubocop'
module RuboCop
module Cop
module MyProject
class MyCop < RuboCop::Cop::Cop
# ...
end
end
end
end
#lib/rubocop/cop/myproject/myu cop.rb
需要“rubocop”
需要\u相对“../../../../../../config/environment”
RuboCop模块
模块通用作战图
模块MyProject
类MyCop
并调用::Rails.logger.level