Class: RSchemaHamster::GenericHamsterHashSchema
- Inherits:
-
Struct
- Object
- Struct
- RSchemaHamster::GenericHamsterHashSchema
- Defined in:
- lib/rschema_hamster/dsl.rb
Instance Attribute Summary collapse
-
#key_subschema ⇒ Object
Returns the value of attribute key_subschema.
-
#value_subschema ⇒ Object
Returns the value of attribute value_subschema.
Instance Method Summary collapse
Instance Attribute Details
#key_subschema ⇒ Object
Returns the value of attribute key_subschema
19 20 21 |
# File 'lib/rschema_hamster/dsl.rb', line 19 def key_subschema @key_subschema end |
#value_subschema ⇒ Object
Returns the value of attribute value_subschema
19 20 21 |
# File 'lib/rschema_hamster/dsl.rb', line 19 def value_subschema @value_subschema end |
Instance Method Details
#schema_walk(value, mapper) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/rschema_hamster/dsl.rb', line 20 def schema_walk(value, mapper) if not value.is_a?(Hamster::Hash) return RSchema::ErrorDetails.new(value, 'is not a Hamster::Hash') end value.reduce(Hamster.hash) do |accum, (k, v)| # walk key k_walked, error = RSchema.walk(key_subschema, k, mapper) break error.extend_key_path('.keys') if error # walk value v_walked, error = RSchema.walk(value_subschema, v, mapper) break error.extend_key_path(k) if error accum.put(k_walked, v_walked) end end |