class NanoRpc::Response
Public Class Methods
new(hash = {})
click to toggle source
Calls superclass method
# File lib/nano_rpc/response.rb, line 9 def initialize(hash = {}) super coerce_values end
Private Instance Methods
big_integer?(val)
click to toggle source
# File lib/nano_rpc/response.rb, line 28 def big_integer?(val) val.respond_to?(:to_i) && val.to_i > 1_000_000_000_000_000 end
coerce_values()
click to toggle source
# File lib/nano_rpc/response.rb, line 16 def coerce_values merge!(self) { |_k, v| to_f_or_i_or_s(v) } end
to_f_or_i_or_s(val)
click to toggle source
# File lib/nano_rpc/response.rb, line 20 def to_f_or_i_or_s(val) return if val.nil? return val.to_i if big_integer?(val) (float = Float(val)) && (float % 1.0).zero? ? float.to_i : float rescue ArgumentError, TypeError val end