class Justcoin::DecimalConverter
Public Instance Methods
call(env)
click to toggle source
# File lib/justcoin/decimal_converter.rb, line 6 def call(env) convert_decimals(env.body) if env.body response = @app.call(env) parse_response response.env[:body] response end
Private Instance Methods
convert_decimals(body)
click to toggle source
# File lib/justcoin/decimal_converter.rb, line 15 def convert_decimals(body) %i(price amount).each do |key| case body[key] when BigDecimal body[key] = body[key].to_s("F") when Numeric body[key] = Float(body[key]).to_s end end end
parse_response(value)
click to toggle source
# File lib/justcoin/decimal_converter.rb, line 26 def parse_response(value) case value when Array value.map! {|v| parse_response(v)} when Hash, Hashie::Mash value.each do |k, v| value[k] = parse_response(v) end when /^\s*\d*\.\d+/ value = BigDecimal.new(value) end value end