class Bambora::Response

Parses a response into a Hash. Uses JSON to parse by default.

Constants

DEFAULT_PARSER

Attributes

response[R]

Public Class Methods

new(response) click to toggle source
# File lib/bambora/adapters/response.rb, line 11
def initialize(response)
  @response = response
end

Public Instance Methods

to_h() click to toggle source
# File lib/bambora/adapters/response.rb, line 15
def to_h
  deep_transform_keys_in_object(parser.parse(response.body), &:to_sym)
rescue JSON::ParserError
  error_response
end

Private Instance Methods

deep_transform_keys_in_object(object) { |key| ... } click to toggle source
# File lib/bambora/adapters/response.rb, line 23
def deep_transform_keys_in_object(object, &block)
  case object
    when Hash
      object.each_with_object({}) do |(key, value), result|
        result[yield(key)] = deep_transform_keys_in_object(value, &block)
      end
    when Array
      object.map { |e| deep_transform_keys_in_object(e, &block) }
    else
      object
  end
end
error_response() click to toggle source
# File lib/bambora/adapters/response.rb, line 36
def error_response
  { status: response.status, body: response.body }
end
parser() click to toggle source
# File lib/bambora/adapters/response.rb, line 40
def parser
  DEFAULT_PARSER
end