class Spellr::ConfigValidator
Public Instance Methods
checker_and_reporter_coexist()
click to toggle source
# File lib/spellr/config_validator.rb, line 34 def checker_and_reporter_coexist if Spellr.config.reporter.class.name == 'Spellr::Interactive' && Spellr.config.checker.name == 'Spellr::CheckParallel' errors << 'CLI error: --interactive is incompatible with --parallel' end end
interactive_is_interactive()
click to toggle source
# File lib/spellr/config_validator.rb, line 21 def interactive_is_interactive # rubocop:disable Metrics/MethodLength return unless Spellr.config.reporter.class.name == 'Spellr::Interactive' # I have no idea how to check for this other than call it Timeout.timeout(0.0000000000001) do Spellr.config.output.stdin.getch end rescue Errno::ENOTTY, Errno::ENODEV, IOError errors << 'CLI error: --interactive is unavailable in a non-interactive terminal' rescue Timeout::Error nil end
keys_are_single_characters()
click to toggle source
# File lib/spellr/config_validator.rb, line 54 def keys_are_single_characters bad_languages = Spellr.config.languages.select { |l| l.key.length > 1 } bad_languages.each do |lang| errors << "Config error: #{lang.name} defines a key that is too long (#{lang.key}). "\ 'Please change it to be a single character' end end
languages_with_conflicting_keys()
click to toggle source
# File lib/spellr/config_validator.rb, line 48 def languages_with_conflicting_keys Spellr.config.languages.select(&:addable?).group_by(&:key).values.select do |g| g.length > 1 end end
only_has_one_key_per_language()
click to toggle source
# File lib/spellr/config_validator.rb, line 41 def only_has_one_key_per_language languages_with_conflicting_keys.each do |conflicts| errors << "Config error: #{conflicts.map(&:name).join(' & ')} share the same language key "\ "(#{conflicts.first.key}). Please define one to be different with `key:`" end end
valid?()
click to toggle source
Calls superclass method
Spellr::Validations#valid?
# File lib/spellr/config_validator.rb, line 17 def valid? raise ::Spellr::Config::Invalid, errors.join("\n") unless super end