class Linters::LinterSettings

Constants

DEFAULT_SETTINGS

Attributes

settings[R]

Public Class Methods

new(name, custom_settings = {}) click to toggle source
# File lib/linters/linter_settings.rb, line 31
def initialize(name, custom_settings = {})
  @name = name
  @settings = DEFAULT_SETTINGS.fetch(name) { {} }
  @settings = @settings.merge(load_settings(name)).merge(custom_settings)
end

Public Instance Methods

command() click to toggle source
# File lib/linters/linter_settings.rb, line 45
def command
  settings.fetch(:command) { settings.fetch(:default_command) }
end
name() click to toggle source
# File lib/linters/linter_settings.rb, line 37
def name
  settings.fetch(:name) { @name }
end
parse_output() click to toggle source
# File lib/linters/linter_settings.rb, line 49
def parse_output
  settings[:parse_output]
end
warnings_number() click to toggle source
# File lib/linters/linter_settings.rb, line 41
def warnings_number
  ENV.fetch("LINTERS_#{ name.upcase }_NUMBER_WARNINGS", settings.fetch(:warnings_number) { 0 })
end

Private Instance Methods

load_settings(name) click to toggle source

:reek: UtilityFunction

# File lib/linters/linter_settings.rb, line 58
def load_settings(name)
  path = Linters.configuration.settings_path

  return {} unless File.exist?(path)

  (YAML.load_file(path)['linters'][name.to_s] || {}).each_with_object({}) do |item, result|
    result[item[0].to_sym] = item[1]
  end
end