module Omise::Util
Public Instance Methods
generate_param(object)
click to toggle source
# File lib/omise/util.rb, line 51 def generate_param(object) if object.is_a?(Hash) return generate_query(object) end if object.is_a?(Array) return object.map { |o| generate_param(o) }.join("/") end if object.is_a?(NilClass) || object.is_a?(TrueClass) || object.is_a?(FalseClass) return object end object.to_s end
generate_query(object, namespace = nil)
click to toggle source
# File lib/omise/util.rb, line 29 def generate_query(object, namespace = nil) if object.is_a?(Hash) return object.map do |key, value| unless (value.is_a?(Hash) || value.is_a?(Array)) && value.empty? generate_query(value, namespace ? "#{namespace}[#{key}]" : key) end end.compact.sort! * "&" end if object.is_a?(Array) prefix = "#{namespace}[]" if object.empty? return generate_query(nil, prefix) else return object.map { |value| generate_query(value, prefix) }.join("&") end end "#{CGI.escape(generate_param(namespace))}=#{CGI.escape(generate_param(object).to_s)}" end
load_response(response)
click to toggle source
# File lib/omise/util.rb, line 19 def load_response(response) object = JSON.load(response) if object["object"] == "error" raise Omise::Error, object end object end
typecast(object)
click to toggle source
# File lib/omise/util.rb, line 8 def typecast(object) klass = begin klass_name = object["object"].split("_").map(&:capitalize).join("") Omise.const_get(klass_name) rescue NameError OmiseObject end klass.new(object) end