Class: Coinbase::Advanced::REST::BaseResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/coinbase/advanced/rest/base_response.rb

Overview

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(json_hash, snake_case: true) ⇒ BaseResponse

TODO: should snake case default be true or false? (or perhaps support both via aliasing if possible?)



14
15
16
17
# File 'lib/coinbase/advanced/rest/base_response.rb', line 14

def initialize(json_hash, snake_case: true)
  @snake_case = snake_case
  @response = to_data(json_hash)
end

Instance Attribute Details

#response ⇒ Object (readonly)

Returns the value of attribute response.



11
12
13
# File 'lib/coinbase/advanced/rest/base_response.rb', line 11

def response
  @response
end

Instance Method Details

#to_data(value) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/coinbase/advanced/rest/base_response.rb', line 19

def to_data(value)
  case value
  when Hash
    transformed_keys = value.keys.map { |key| @snake_case ? key.underscore.to_sym : key }
    transformed_values = value.values.map { |v| to_data(v) }

    Data.define(*transformed_keys).new(*transformed_values)
  when Array
    value.map { |v| to_data(v) }
  else
    value
  end
end