class Supercop::Configuration
Attributes
cops_settings[RW]
file_path[RW]
verbose[RW]
Public Class Methods
new()
click to toggle source
# File lib/supercop/configuration.rb, line 5 def initialize @cops_settings = config_file.fetch(:config) @verbose = config_file.fetch(:verbose) @file_path = config_path end
Public Instance Methods
path(file_path)
click to toggle source
# File lib/supercop/configuration.rb, line 11 def path(file_path) defined?(Rails) ? Rails.root.join(file_path) : File.join(Dir.pwd, file_path) end
Private Instance Methods
config_file()
click to toggle source
# File lib/supercop/configuration.rb, line 17 def config_file @_config_file ||= YAML.load_file(config_path).with_indifferent_access rescue => e puts "Can't find or read config file, did you run initialize command? #{e.message}" end
config_path()
click to toggle source
# File lib/supercop/configuration.rb, line 23 def config_path @_config_path ||= defined?(Rails) ? rails_path : other_path end
define_dig()
click to toggle source
FYI: dirty hack for ruby < 2.3
# File lib/supercop/configuration.rb, line 42 def define_dig new_method = <<-NEW class ::Hash def dig(*path) path.inject(self) do |location, key| location.is_a?(Hash) ? location[key] : nil end end end NEW eval(new_method) end
method_missing(m, *args, &block)
click to toggle source
Calls superclass method
# File lib/supercop/configuration.rb, line 35 def method_missing(m, *args, &block) define_dig unless cops_settings.methods.include?(:dig) cops_settings.dig(m) || super end
other_path()
click to toggle source
# File lib/supercop/configuration.rb, line 31 def other_path File.join(Dir.pwd, 'supercop.yml') end
rails_path()
click to toggle source
# File lib/supercop/configuration.rb, line 27 def rails_path Rails.root.join('config', 'supercop.yml') end
respond_to_missing?(method_name, include_private = false)
click to toggle source
robots.thoughtbot.com/always-define-respond-to-missing-when-overriding
Calls superclass method
# File lib/supercop/configuration.rb, line 57 def respond_to_missing?(method_name, include_private = false) cops_settings.keys.include?(method_name) || super end