Class: Worldline::Connect::SDK::JSON::DefaultMarshaller

Inherits:
Marshaller
  • Object
show all
Includes:
Singleton
Defined in:
lib/worldline/connect/sdk/json/default_marshaller.rb

Overview

Marshals objects to and from JSON format. Currently supports marshalling and unmarshalling of classes that support class.new_from_hash and class#to_h

Instance Method Summary collapse

Instance Method Details

#marshal(request_object) ⇒ Object

Marshals the request_object to a JSON string using request_object#to_h



15
16
17
# File 'lib/worldline/connect/sdk/json/default_marshaller.rb', line 15

def marshal(request_object)
  ::JSON.pretty_generate(request_object.to_h)
end

#unmarshal(json_string, klass) ⇒ Object

Unmarshals a JSON string into an object of type klass using klass.new_from_hash



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/worldline/connect/sdk/json/default_marshaller.rb', line 20

def unmarshal(json_string, klass)
  if json_string.nil?
    return nil
  elsif json_string.length == 0
    return ''
  end
  if klass.respond_to?(:new_from_hash)
    klass.new_from_hash(::JSON.load(json_string))
  else
    raise NotImplementedError
  end
end