Class: Definition::Types::Keys::Conformer

Inherits:
Object
  • Object
show all
Defined in:
lib/definition/types/keys.rb

Instance Method Summary collapse

Constructor Details

#initialize(definition, value) ⇒ Conformer

Returns a new instance of Conformer.



80
81
82
83
84
# File 'lib/definition/types/keys.rb', line 80

def initialize(definition, value)
  self.definition = definition
  self.value = value
  self.errors = []
end

Instance Method Details

#conformObject



86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/definition/types/keys.rb', line 86

def conform
  if valid_input_type?
    add_extra_key_errors unless definition.ignore_extra_keys
    add_missing_key_errors
    values = conform_all_keys
  else
    errors.push(ConformError.new(definition,
                                 "#{definition.name} is not a Hash",
                                 i18n_key: "keys.not_a_hash"))
  end

  ConformResult.new(values, errors: errors)
end