class ONIX::Serializer::Traverser
Public Class Methods
any_serialize(type, mod, data, val, tag, level)
click to toggle source
# File lib/onix/serializer.rb, line 34 def self.any_serialize(type, mod, data, val, tag, level) case type when :subset self.serialize_subset(mod, data, val, tag, level) when :datestamp mod.const_get("Primitive").serialize(data, val.code, tag, level) when :text, :integer, :float mod.const_get("Primitive").serialize(data, val, tag, level) when :bool mod.const_get("Primitive").serialize(data, nil, tag, level) if val when :ignore else end end
recursive_serialize(mod, data, subset, parent_tag = nil, level = 0)
click to toggle source
# File lib/onix/serializer.rb, line 49 def self.recursive_serialize(mod, data, subset, parent_tag = nil, level = 0) if subset.class.respond_to?(:ancestors_registered_elements) subset.class.ancestors_registered_elements.each do |tag, element| next if element.short val = subset.instance_variable_get(element.to_instance) if val if element.is_array? val.each do |subval| self.any_serialize(element.type, mod, data, subval, tag, level) end else self.any_serialize(element.type, mod, data, element.serialize_lambda(val), tag, level) end end end end end
serialize(mod, xml, subset, tag = nil)
click to toggle source
# File lib/onix/serializer.rb, line 10 def self.serialize(mod, xml, subset, tag = nil) ONIX::Serializer::Traverser.serialize_subset(mod, xml, subset, tag) end
serialize_subset(mod, data, subset, parent_tag = nil, level = 0)
click to toggle source
# File lib/onix/serializer.rb, line 14 def self.serialize_subset(mod, data, subset, parent_tag = nil, level = 0) if subset.is_a?(ONIX::Root) ONIX::Serializer::Traverser.recursive_serialize(mod, data, subset, parent_tag, level) else if subset.is_a?(ONIX::ONIXMessage) mod.const_get("Root").serialize(data, subset, "ONIXMessage", level) else if subset.class.included_modules.include?(DateHelper) mod.const_get("Date").serialize(data, subset, parent_tag, level) else if subset.class.included_modules.include?(CodeHelper) mod.const_get("Code").serialize(data, subset, parent_tag, level) else mod.const_get("Subset").serialize(data, subset, parent_tag, level) end end end end end