class Bitstamper::Models::Balance
Attributes
available[RW]
balance[RW]
currency[RW]
fees[RW]
reserved[RW]
Public Class Methods
new(hash)
click to toggle source
# File lib/bitstamper/models/balance.rb, line 6 def initialize(hash) hash.each do |key, value| self.send("#{key}=", value) if self.respond_to?(key) end end
parse(hash)
click to toggle source
# File lib/bitstamper/models/balance.rb, line 12 def self.parse(hash) parsed = [] groups = {} hash.each do |key, value| if key !~ /_fee$/i splitted = key.split("_") if splitted.size == 2 currency = splitted.first value_key = splitted.last groups[currency] ||= {} groups[currency][value_key] = value&.to_f end end end hash.each do |key, value| if key =~ /_fee$/i pair = key.split("_")&.first #btceur_fee -> btceur groups.keys.each do |grouped_key| if pair =~ /^#{grouped_key}/i quote_key = pair.gsub(grouped_key, "") groups[grouped_key]["fees"] ||= {} groups[grouped_key]["fees"][quote_key] = value&.to_f end end end end groups = groups.deep_symbolize_keys groups.each do |key, values| values[:currency] = key.to_s.upcase parsed << ::Bitstamper::Models::Balance.new(values) end return parsed end