Module: Fog::JSON

Defined in:
lib/fog/json.rb

Overview

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.

Defined Under Namespace

Classes: DecodeError, EncodeError

Class Method Summary collapse

Class Method Details

.decode(obj) ⇒ Object



41
42
43
44
45
# File 'lib/fog/json.rb', line 41

def self.decode(obj)
  MultiJson.decode(obj)
rescue => err
  raise DecodeError.slurp(err)
end

.encode(obj) ⇒ Object

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.



35
36
37
38
39
# File 'lib/fog/json.rb', line 35

def self.encode(obj)
  MultiJson.encode(obj)
rescue => err
  raise EncodeError.slurp(err)
end

.sanitize(data) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fog/json.rb', line 17

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