Module: Initializr

Defined in:
lib/initializr.rb,
lib/initializr/schema.rb,
lib/initializr/default.rb,
lib/initializr/hash_of.rb,
lib/initializr/array_of.rb

Defined Under Namespace

Classes: ArrayOf, Default, HashOf, Schema

Class Method Summary collapse

Class Method Details

.instantiate(obj, schemas) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/initializr.rb', line 3

def self.instantiate obj, schemas
  if schemas.is_a? Hash
    children = schemas.keys.map do |key|
      value = schemas[key].instantiate(obj[key])
      Hash[key, value]
    end.reduce({}, &:merge)
    obj.merge(children)
  else
    schemas.instantiate(obj)
  end
end