class Initializr::Schema
Public Class Methods
new(klass, schemas = {})
click to toggle source
# File lib/initializr/schema.rb, line 4 def initialize klass, schemas = {} @klass = klass @schemas = schemas end
Public Instance Methods
instantiate(obj)
click to toggle source
# File lib/initializr/schema.rb, line 9 def instantiate obj children = @schemas.keys.map do |key| value = @schemas[key].instantiate(obj[key]) Hash[key, value] end.reduce({}, &:merge) args = obj.merge(children) @klass.new args end