Module: Schema::DataStructure::Build

Defined in:
lib/schema/data_structure.rb

Instance Method Summary collapse

Instance Method Details

#build(data = nil, strict = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/schema/data_structure.rb', line 18

def build(data=nil, strict=nil)
  data ||= {}
  strict ||= false

  new.tap do |instance|
    instance.read(data)
    set_attributes(instance, data, strict)
    instance.configure_dependencies
  end
end

#set_attributes(instance, data, strict) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/schema/data_structure.rb', line 29

def set_attributes(instance, data, strict)
  begin
    SetAttributes.(instance, data, strict: strict)
  rescue SetAttributes::Attribute::Error => e
    raise Schema::Error, e.message
  end
end