Class: Spellr::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/spellr.rb,
lib/spellr/config.rb

Defined Under Namespace

Classes: Invalid, NotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



19
20
21
# File 'lib/spellr/config.rb', line 19

def initialize
  @config = ConfigLoader.new
end

Instance Attribute Details

#checkerObject



70
71
72
73
74
# File 'lib/spellr/config.rb', line 70

def checker
  return dry_run_checker if dry_run?

  @checker ||= default_checker
end

#config_fileObject

Returns the value of attribute config_file.



15
16
17
# File 'lib/spellr/config.rb', line 15

def config_file
  @config_file
end

#dry_runObject Also known as: dry_run?

Returns the value of attribute dry_run.



16
17
18
# File 'lib/spellr/config.rb', line 16

def dry_run
  @dry_run
end

#reporterObject



66
67
68
# File 'lib/spellr/config.rb', line 66

def reporter
  @reporter ||= default_reporter
end

Instance Method Details

#excludesObject



39
40
41
# File 'lib/spellr/config.rb', line 39

def excludes
  @excludes ||= @config[:excludes] || []
end

#includesObject



35
36
37
# File 'lib/spellr/config.rb', line 35

def includes
  @includes ||= @config[:includes] || []
end

#key_heuristic_weightObject



27
28
29
# File 'lib/spellr/config.rb', line 27

def key_heuristic_weight
  @key_heuristic_weight ||= @config[:key_heuristic_weight]
end

#key_minimum_lengthObject



31
32
33
# File 'lib/spellr/config.rb', line 31

def key_minimum_length
  @key_minimum_length ||= @config[:key_minimum_length]
end

#languagesObject



43
44
45
46
47
# File 'lib/spellr/config.rb', line 43

def languages
  @languages ||= @config[:languages].map do |key, args|
    Spellr::Language.new(key, **args)
  end
end

#languages_for(file) ⇒ Object



49
50
51
# File 'lib/spellr/config.rb', line 49

def languages_for(file)
  languages.select { |l| l.matches?(file) }
end

#outputObject



62
63
64
# File 'lib/spellr/config.rb', line 62

def output
  @output ||= Spellr::Output.new
end

#reset!Object

rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity



80
81
82
83
84
85
86
87
88
# File 'lib/spellr/config.rb', line 80

def reset! # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
  @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?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/spellr/config.rb', line 76

def valid?
  Spellr::ConfigValidator.new.valid?
end

#word_minimum_lengthObject



23
24
25
# File 'lib/spellr/config.rb', line 23

def word_minimum_length
  @word_minimum_length ||= @config[:word_minimum_length]
end

#wordlists_for(file) ⇒ Object



53
54
55
# File 'lib/spellr/config.rb', line 53

def wordlists_for(file)
  languages_for(file).flat_map(&:wordlists)
end