Sha256: 9348b596159a339fd0c24630eb3b8fb0ea1b8a4d64b71a87ab478c87b2eadec7
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
module Unimatrix class Serializer def initialize( payload = [], options = {} ) @payload = [ payload ].flatten @options = options end def serialize( node, options = {} ) result = {} result[ node ] = @payload.map do | object | node_object = {} node_object[ :type_name ] = ( object.respond_to?( :type_name ) ? object.type_name : object.class.name.split( '::' ).last.underscore ) if object.respond_to?( :fields ) object.fields.each do | name, options | unless options[ :read_only ] value = object.send( name ) if object.respond_to?( name ) if value.is_a?( Struct ) nested_attributes = value.members nested_attributes.each do | nested_attribute | key = "#{ name }.#{ nested_attribute }" node_object[ key.to_sym ] = value.send( nested_attribute ) end else node_object[ name.to_sym ] = value end end end end node_object end result end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
unimatrix-2.5.0 | lib/unimatrix/serializer.rb |
unimatrix-2.4.2 | lib/unimatrix/serializer.rb |