class ERBLint::RunnerConfig
Public Class Methods
default(default_enabled: nil)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 48 def default(default_enabled: nil) default_enabled = default_enabled.nil? ? true : default_enabled new( linters: { AllowedScriptType: { enabled: default_enabled }, ClosingErbTagIndent: { enabled: default_enabled }, ExtraNewline: { enabled: default_enabled }, FinalNewline: { enabled: default_enabled }, NoJavascriptTagHelper: { enabled: default_enabled }, ParserErrors: { enabled: default_enabled }, RightTrim: { enabled: default_enabled }, SelfClosingTag: { enabled: default_enabled }, SpaceAroundErbTag: { enabled: default_enabled }, SpaceIndentation: { enabled: default_enabled }, SpaceInHtmlTag: { enabled: default_enabled }, TrailingWhitespace: { enabled: default_enabled }, RequireInputAutocomplete: { enabled: default_enabled }, }, ) end
default_for(config)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 69 def default_for(config) default_linters_enabled = config.to_hash.dig("EnableDefaultLinters") default(default_enabled: default_linters_enabled).merge(config) end
new(config = nil, file_loader = nil)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 9 def initialize(config = nil, file_loader = nil) @config = (config || {}).dup.deep_stringify_keys resolver.resolve_inheritance_from_gems(@config, @config.delete("inherit_gem")) resolver.resolve_inheritance(@config, file_loader) if file_loader @config.delete("inherit_from") end
Public Instance Methods
for_linter(klass)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 21 def for_linter(klass) klass_name = if klass.is_a?(String) klass.to_s elsif klass.is_a?(Class) && klass <= ERBLint::Linter klass.simple_name else raise ArgumentError, "expected String or linter class" end linter_klass = LinterRegistry.find_by_name(klass_name) raise Error, "#{klass_name}: linter not found (is it loaded?)" unless linter_klass linter_klass.config_schema.new(config_hash_for_linter(klass_name)) end
global_exclude()
click to toggle source
# File lib/erb_lint/runner_config.rb, line 34 def global_exclude @config["exclude"] || [] end
merge(other_config)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 38 def merge(other_config) self.class.new(@config.deep_merge(other_config.to_hash)) end
merge!(other_config)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 42 def merge!(other_config) @config.deep_merge!(other_config.to_hash) self end
to_hash()
click to toggle source
# File lib/erb_lint/runner_config.rb, line 17 def to_hash @config.dup end
Private Instance Methods
config_hash_for_linter(klass_name)
click to toggle source
# File lib/erb_lint/runner_config.rb, line 81 def config_hash_for_linter(klass_name) config_hash = linters_config[klass_name] || {} config_hash["exclude"] ||= [] config_hash["exclude"].concat(global_exclude) if config_hash["exclude"].is_a?(Array) config_hash end
linters_config()
click to toggle source
# File lib/erb_lint/runner_config.rb, line 77 def linters_config @config["linters"] || {} end
resolver()
click to toggle source
# File lib/erb_lint/runner_config.rb, line 88 def resolver @resolver ||= ERBLint::RunnerConfigResolver.new end