module CC::Config::Validation::HashValidations

Public Instance Methods

key_type_error_message(key, types) click to toggle source
# File lib/cc/config/validation/hash_validations.rb, line 25
def key_type_error_message(key, types)
  if types.one?
    klass_name = types[0].to_s.downcase
    article =
      if klass_name[0] == "a"
        "an"
      else
        "a"
      end
    "'#{key}' must be #{article} #{klass_name}"
  elsif types == [TrueClass, FalseClass]
    "'#{key}' must be a boolean"
  else
    type_names = types.map(&:to_s).map(&:downcase)
    "'#{key}' must be one of #{type_names.join(", ")}"
  end
end
validate_hash_data() click to toggle source
# File lib/cc/config/validation/hash_validations.rb, line 5
def validate_hash_data
  unless data.is_a?(Hash)
    errors << "Config file should contain a hash, not a #{data.class.to_s.downcase}"
    return false
  end
  true
end
validate_key_type(key, types) click to toggle source
# File lib/cc/config/validation/hash_validations.rb, line 13
def validate_key_type(key, types)
  if types.is_a?(Class)
    return validate_key_type(key, [types])
  elsif data.key?(key)
    unless types.include?(data[key].class)
      errors << key_type_error_message(key, types)
      return false
    end
  end
  true
end
warn_unrecognized_keys(recognized_keys) click to toggle source
# File lib/cc/config/validation/hash_validations.rb, line 43
def warn_unrecognized_keys(recognized_keys)
  unknown_keys = data.keys.reject { |k| recognized_keys.include?(k) }
  unknown_keys.each do |key|
    warnings << "unrecognized key '#{key}'"
  end
end