Method: A4Tools::ObjectBuilder.define_with_json

Defined in:
lib/object_builder/object_builder.rb

.define_with_json(string, id = nil, description = nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/object_builder/object_builder.rb', line 50

def define_with_json(string, id=nil, description=nil)
  object = symbolify(JSON.parse(string))
  description ||= object[:___description] || "Supplied from JSON"
  definition = Class.new(A4Tools::ObjectBuilder) do
    generate { self.class.instance_variable_get("@obj") }
  end
  
  object.delete(:__description)
  definition.class_eval("description \"#{description}\"")
  definition.instance_variable_set("@obj", object)
  definition.id = id.to_sym
  definition.new
end