class PayU::BaseRequest

Attributes

headers[R]

Public Class Methods

new(headers, json_params = {}) click to toggle source
# File lib/pay_u/base_request.rb, line 3
def initialize(headers, json_params = {})
  @headers = headers
  @keys = []
  json_params.each_pair do |key, value|
    @keys << key
    define_singleton_method(key) do
      value
    end
  end
end

Public Instance Methods

to_h() click to toggle source
# File lib/pay_u/base_request.rb, line 16
def to_h
  result = {}
  @keys.each do |key|
    result.merge!(camelize_key(key, false) => camelized_value(send(key)))
  end
  result
end
to_json() click to toggle source
# File lib/pay_u/base_request.rb, line 24
def to_json
  to_h.to_json
end

Private Instance Methods

camelize_array(array) click to toggle source
# File lib/pay_u/base_request.rb, line 40
def camelize_array(array)
  array.map do |element|
    camelize_keys(element)
  end
end
camelize_key(key, capitalize) click to toggle source
# File lib/pay_u/base_request.rb, line 54
def camelize_key(key, capitalize)
  index = capitalize ? 0 : 1
  stringified_key = key.to_s
  stringified_key.split('_').each_with_index.map do |str, i|
    index <= i ? str.capitalize : str
  end.join('').to_sym
end
camelize_keys(hash) click to toggle source
# File lib/pay_u/base_request.rb, line 46
def camelize_keys(hash)
  camelized_hash = {}
  hash.each_pair do |key, value|
    camelized_hash[camelize_key(key, false)] = value
  end
  camelized_hash
end
camelized_value(value) click to toggle source
# File lib/pay_u/base_request.rb, line 30
def camelized_value(value)
  if value.respond_to?(:each_pair)
    camelize_keys(value)
  elsif value.respond_to?(:each)
    camelize_array(value)
  else
    value
  end
end