class Invoiced::Util
Public Class Methods
auth_header(api_key)
click to toggle source
# File lib/invoiced/util.rb, line 4 def auth_header(api_key) "Basic " + Base64.strict_encode64(api_key + ":") end
build_objects(_class, objects)
click to toggle source
# File lib/invoiced/util.rb, line 13 def build_objects(_class, objects) objects.map { |object| convert_to_object(_class, object) } end
convert_to_object(_class, values)
click to toggle source
# File lib/invoiced/util.rb, line 19 def convert_to_object(_class, values) object_class = _class.class # check for PaymentSource special case where class must be forced to Card or BankAccount unless values[:object].nil? if values[:object] == 'card' object_class = Invoiced::Card elsif values[:object] == 'bank_account' object_class = Invoiced::BankAccount end end object = object_class.new(_class.client, values[:id], values) object.set_endpoint_base(_class.endpoint_base()) end
uri_encode(params)
click to toggle source
# File lib/invoiced/util.rb, line 8 def uri_encode(params) flatten_params(params). map { |k,v| "#{k}=#{url_encode(v)}" }.join('&') end
Private Class Methods
flatten_params(params, parent_key=nil)
click to toggle source
# File lib/invoiced/util.rb, line 42 def flatten_params(params, parent_key=nil) result = [] params.each do |key, value| calculated_key = parent_key ? "#{parent_key}[#{url_encode(key)}]" : url_encode(key) if value.is_a?(Hash) result += flatten_params(value, calculated_key) elsif value.is_a?(Array) result += flatten_params_array(value, calculated_key) else result << [calculated_key, value] end end result end
flatten_params_array(value, calculated_key)
click to toggle source
# File lib/invoiced/util.rb, line 57 def flatten_params_array(value, calculated_key) result = [] value.each do |elem| if elem.is_a?(Hash) result += flatten_params(elem, "#{calculated_key}[]") elsif elem.is_a?(Array) result += flatten_params_array(elem, calculated_key) else result << ["#{calculated_key}[]", elem] end end result end
url_encode(params)
click to toggle source
# File lib/invoiced/util.rb, line 38 def url_encode(params) URI.encode_www_form_component(params) end