Class: Conglomerate::TreeSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/conglomerate/tree_serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(object) ⇒ TreeSerializer

Returns a new instance of TreeSerializer.



3
4
5
# File 'lib/conglomerate/tree_serializer.rb', line 3

def initialize(object)
  self.object = object
end

Instance Method Details

#serialize(item = object) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/conglomerate/tree_serializer.rb', line 7

def serialize(item = object)
  if Conglomerate::Particle === item
    serialize_particle(item)
  elsif Conglomerate::Array === item
    serialize_array(item)
  elsif ::Array === item
    serialize_array(item)
  elsif item.is_a?(Numeric) || item.is_a?(String) || item.nil?
    item
  elsif item.respond_to?(:to_s)
    case item
    when DateTime
      item.to_time.utc.iso8601.sub(/\+00:00$/, "Z")
    when Time
      item.utc.iso8601.sub(/\+00:00$/, "Z")
    when Date
      item.strftime("%Y-%m-%d")
    else
      item
    end
  end
end