# File lib/cimi/models/schema.rb, line 87 def initialize(name, opts, &block) content = opts[:content] super(name, opts) if opts[:schema] if block_given? raise "Cannot provide :schema option and a block" end @schema = opts[:schema] else @schema = CIMI::Model::Schema.new @schema.instance_eval(&block) if block_given? @schema.scalar(content, :text => :direct) if content end end
# File lib/cimi/models/schema.rb, line 128 def convert_from_json(json) sub = struct.new @schema.from_json(json, sub) sub end
# File lib/cimi/models/schema.rb, line 122 def convert_from_xml(xml) sub = struct.new @schema.from_xml(xml, sub) sub end
# File lib/cimi/models/schema.rb, line 140 def convert_to_json(model) json = {} @schema.to_json(model, json) json end
# File lib/cimi/models/schema.rb, line 134 def convert_to_xml(model) xml = {} @schema.to_xml(model, xml) xml end
# File lib/cimi/models/schema.rb, line 107 def from_json(json, model) json = json.has_key?(json_name) ? json[json_name] : {} model[name] = convert_from_json(json) end
# File lib/cimi/models/schema.rb, line 102 def from_xml(xml, model) xml = xml.has_key?(xml_name) ? xml[xml_name].first : {} model[name] = convert_from_xml(xml) end
# File lib/cimi/models/schema.rb, line 117 def to_json(model, json) conv = convert_to_json(model[name]) json[json_name] = conv unless conv.empty? end
# File lib/cimi/models/schema.rb, line 112 def to_xml(model, xml) conv = convert_to_xml(model[name]) xml[xml_name] = [conv] unless conv.empty? end