Module: Jsapi::JSON
- Defined in:
- lib/jsapi/json.rb,
lib/jsapi/json/null.rb,
lib/jsapi/json/array.rb,
lib/jsapi/json/value.rb,
lib/jsapi/json/number.rb,
lib/jsapi/json/object.rb,
lib/jsapi/json/string.rb,
lib/jsapi/json/boolean.rb,
lib/jsapi/json/integer.rb
Overview
Provides a DOM for JSON values.
Defined Under Namespace
Classes: Array, Boolean, Integer, Null, Number, Object, String, Value
Class Method Summary collapse
Class Method Details
.wrap(object, schema, definitions = nil, context: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jsapi/json.rb', line 16 def wrap(object, schema, definitions = nil, context: nil) schema = schema.resolve(definitions) unless definitions.nil? object = schema.default_value(definitions, context: context) if object.nil? return Null.new(schema) if object.nil? case schema.type when 'array' Array.new(object, schema, definitions, context: context) when 'boolean' Boolean.new(object, schema) when 'integer' Integer.new(object, schema) when 'number' Number.new(object, schema) when 'object' Object.new(object, schema, definitions, context: context) when 'string' String.new(object, schema) else raise "invalid type: #{schema.type}" end end |