class Spellr::Config

Attributes

checker[W]
config_file[R]
dry_run[RW]
dry_run?[RW]
reporter[W]
suppress_file_rules[RW]

Public Class Methods

new() click to toggle source
# File lib/spellr/config.rb, line 20
def initialize
  @config = ConfigLoader.new
end

Public Instance Methods

checker() click to toggle source
# File lib/spellr/config.rb, line 71
def checker
  return dry_run_checker if dry_run?

  @checker ||= default_checker
end
config_file=(value) click to toggle source
# File lib/spellr/config.rb, line 58
def config_file=(value)
  reset!
  @config = ConfigLoader.new(value)
end
excludes() click to toggle source
# File lib/spellr/config.rb, line 40
def excludes
  @excludes ||= @config[:excludes] || []
end
includes() click to toggle source
# File lib/spellr/config.rb, line 36
def includes
  @includes ||= @config[:includes] || []
end
key_heuristic_weight() click to toggle source
# File lib/spellr/config.rb, line 28
def key_heuristic_weight
  @key_heuristic_weight ||= @config[:key_heuristic_weight]
end
key_minimum_length() click to toggle source
# File lib/spellr/config.rb, line 32
def key_minimum_length
  @key_minimum_length ||= @config[:key_minimum_length]
end
languages() click to toggle source
# File lib/spellr/config.rb, line 44
def languages
  @languages ||= @config[:languages].map do |key, args|
    Spellr::Language.new(key, **args)
  end
end
languages_for(file) click to toggle source
# File lib/spellr/config.rb, line 50
def languages_for(file)
  languages.select { |l| l.matches?(file) }
end
output() click to toggle source
# File lib/spellr/config.rb, line 63
def output
  @output ||= Spellr::Output.new
end
reporter() click to toggle source
# File lib/spellr/config.rb, line 67
def reporter
  @reporter ||= default_reporter
end
reset!() click to toggle source
# File lib/spellr/config.rb, line 81
def reset! # rubocop:disable Metrics/MethodLength
  @config = ConfigLoader.new
  remove_instance_variable(:@languages) if defined?(@languages)
  remove_instance_variable(:@excludes) if defined?(@excludes)
  remove_instance_variable(:@includes) if defined?(@includes)
  remove_instance_variable(:@word_minimum_length) if defined?(@word_minimum_length)
  remove_instance_variable(:@key_heuristic_weight) if defined?(@key_heuristic_weight)
  remove_instance_variable(:@key_minimum_length) if defined?(@key_minimum_length)
end
valid?() click to toggle source
# File lib/spellr/config.rb, line 77
def valid?
  Spellr::ConfigValidator.new.valid?
end
word_minimum_length() click to toggle source
# File lib/spellr/config.rb, line 24
def word_minimum_length
  @word_minimum_length ||= @config[:word_minimum_length]
end
wordlists_for(file) click to toggle source
# File lib/spellr/config.rb, line 54
def wordlists_for(file)
  languages_for(file).flat_map(&:wordlists)
end

Private Instance Methods

default_checker() click to toggle source
# File lib/spellr/config.rb, line 103
def default_checker
  require_relative 'check_parallel'
  Spellr::CheckParallel
end
default_reporter() click to toggle source
# File lib/spellr/config.rb, line 98
def default_reporter
  require_relative 'reporter'
  Spellr::Reporter.new
end
dry_run_checker() click to toggle source
# File lib/spellr/config.rb, line 93
def dry_run_checker
  require_relative 'check_dry_run'
  Spellr::CheckDryRun
end