Class: ERBLint::RunnerConfig
- Inherits:
-
Object
- Object
- ERBLint::RunnerConfig
- Defined in:
- lib/erb_lint/runner_config.rb
Defined Under Namespace
Classes: Error
Class Method Summary collapse
Instance Method Summary collapse
- #for_linter(klass) ⇒ Object
- #global_exclude ⇒ Object
-
#initialize(config = nil, file_loader = nil) ⇒ RunnerConfig
constructor
A new instance of RunnerConfig.
- #merge(other_config) ⇒ Object
- #merge!(other_config) ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(config = nil, file_loader = nil) ⇒ RunnerConfig
Returns a new instance of RunnerConfig.
9 10 11 12 13 14 15 |
# 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 |
Class Method Details
.default(default_enabled: nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/erb_lint/runner_config.rb', line 49 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 }, CommentSyntax: { enabled: default_enabled }, }, ) end |
.default_for(config) ⇒ Object
71 72 73 74 |
# File 'lib/erb_lint/runner_config.rb', line 71 def default_for(config) default_linters_enabled = config.to_hash.dig("EnableDefaultLinters") default(default_enabled: default_linters_enabled).merge(config) end |
Instance Method Details
#for_linter(klass) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# 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 ⇒ Object
35 36 37 |
# File 'lib/erb_lint/runner_config.rb', line 35 def global_exclude @config["exclude"] || [] end |
#merge(other_config) ⇒ Object
39 40 41 |
# File 'lib/erb_lint/runner_config.rb', line 39 def merge(other_config) self.class.new(@config.deep_merge(other_config.to_hash)) end |
#merge!(other_config) ⇒ Object
43 44 45 46 |
# File 'lib/erb_lint/runner_config.rb', line 43 def merge!(other_config) @config.deep_merge!(other_config.to_hash) self end |
#to_hash ⇒ Object
17 18 19 |
# File 'lib/erb_lint/runner_config.rb', line 17 def to_hash @config.dup end |