module Fog::JSON

@note Extracting JSON components out of core is a work in progress.

The {JSON} module includes functionality that is common between APIs using JSON to send and receive data.

The intent is to provide common code for provider APIs using JSON but not require it for those using XML.

@todo Add +require “fog/json” and/or +include Fog::JSON+ to providers using

its services

Public Class Methods

decode(obj) click to toggle source
# File lib/fog/json.rb, line 40
def self.decode(obj)
  MultiJson.decode(obj)
end
encode(obj) click to toggle source

Do the MultiJson introspection at this level so we can define our encode/decode methods and perform the introspection only once rather than once per call.

# File lib/fog/json.rb, line 36
def self.encode(obj)
  MultiJson.encode(obj)
end
sanitize(data) click to toggle source
# File lib/fog/json.rb, line 18
def self.sanitize(data)
  case data
  when Array
    data.map {|datum| sanitize(datum)}
  when Hash
    for key, value in data
      data[key] = sanitize(value)
    end
  when ::Time
    data.strftime("%Y-%m-%dT%H:%M:%SZ")
  else
    data
  end
end