Method: Extant::Coercers::Hash#coerce

Defined in:
lib/extant/coercers/hash.rb

#coerceObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/extant/coercers/hash.rb', line 7

def coerce
  result = ::Hash[value]

  if key_type && value_type
    result = result.each_with_object({}) do |(k, v), h|
      h[coerce_key(k)] = coerce_value(v)
    end
  end

  self.coerced = true

  result
rescue ArgumentError
  UncoercedValue
end