class Freddy::Payload::JsonAdapter

Public Class Methods

dump(payload) click to toggle source
# File lib/freddy/payload.rb, line 44
def self.dump(payload)
  JSON.dump(serialize_time_objects(payload))
end
parse(payload) click to toggle source
# File lib/freddy/payload.rb, line 38
def self.parse(payload)
  # MRI has :symbolize_keys, but JRuby does not. Not adding it at the
  # moment.
  Symbolizer.symbolize(JSON.parse(payload))
end
serialize_time_objects(object) click to toggle source
# File lib/freddy/payload.rb, line 48
def self.serialize_time_objects(object)
  if object.is_a?(Hash)
    object.reduce({}) do |hash, (key, value)|
      hash.merge(key => serialize_time_objects(value))
    end
  elsif object.is_a?(Array)
    object.map(&method(:serialize_time_objects))
  elsif object.is_a?(Time) || object.is_a?(Date)
    object.iso8601
  else
    object
  end
end