class BetfairApiNgRails::Api::Hashalator

Attributes

for_param[R]
hashable[R]

Public Class Methods

new(object, for_param = false) click to toggle source
# File lib/betfair_api_ng_rails/api/hashalator.rb, line 8
def initialize(object, for_param = false)
  @hashable = object
  @for_param = for_param
end

Public Instance Methods

to_hash() click to toggle source
# File lib/betfair_api_ng_rails/api/hashalator.rb, line 13
def to_hash
  hashable.inject({}) do |h, (k, v)|
    value = hash_value(v)
    h[hash_key(k)] = value if !value.nil? && value != ""
    h
  end
end

Private Instance Methods

hash_key(key) click to toggle source
# File lib/betfair_api_ng_rails/api/hashalator.rb, line 35
def hash_key(key)
  for_param ? key : key.to_s.camelize(:lower)
end
hash_value(val) click to toggle source
# File lib/betfair_api_ng_rails/api/hashalator.rb, line 23
def hash_value(val)
  need_to_hash?(val) ? hashing_val(val) : val
end
hashing_val(val) click to toggle source
# File lib/betfair_api_ng_rails/api/hashalator.rb, line 27
def hashing_val(val)
  val.is_a?(Array) ? val.map { |e| hash_value(e) } : val.to_hash
end
need_to_hash?(val) click to toggle source
# File lib/betfair_api_ng_rails/api/hashalator.rb, line 31
def need_to_hash?(val)
  !ATTRS_AS_IS.include?(val.class)
end