class Iyzi::PkiBuilder
Constants
- DEFAULT_ADD_METHOD
Attributes
ordered_keys[RW]
params[RW]
Public Class Methods
new(values = {}, ordered_keys = nil, type_cast = {})
click to toggle source
# File lib/iyzi/pki_builder.rb, line 7 def initialize(values = {}, ordered_keys = nil, type_cast = {}) @params = {} assign_params(values, type_cast) @ordered_keys = ordered_keys end
Public Instance Methods
add(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 60 def add(key, value) params[key] = value.to_s unless value.to_s.empty? end
add_address(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 44 def add_address(key, value) add(key, PkiBuilders::Address.new(value).request_string) end
add_array(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 32 def add_array(key, value) add(key, "[#{value.join(', ')}]") if value.present? end
add_basket_items(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 48 def add_basket_items(key, value) add_array(key, PkiBuilders::BasketItems.new(value).request_array) end
add_buyer(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 40 def add_buyer(key, value) add(key, PkiBuilders::Buyer.new(value).request_string) end
add_date(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 36 def add_date(key, value) add(key, parse_date(value).strftime('%Y-%m-%d %H:%M:%S')) if value.present? end
add_payment_card(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 52 def add_payment_card(key, value) add(key, PkiBuilders::PaymentCard.new(value).request_string) end
add_price(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 28 def add_price(key, value) add(key, value.to_f.round(2)) if value.to_f != 0 end
add_store_card(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 56 def add_store_card(key, value) add(key, PkiBuilders::StoreCard.new(value).request_string) end
convert_str(key, value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 64 def convert_str(key, value) "#{key}=#{value}" end
ordered_params()
click to toggle source
# File lib/iyzi/pki_builder.rb, line 22 def ordered_params orderer.map do |key| convert_str(key, params[key]) if params[key].present? end.reject(&:nil?) end
parse_date(value)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 68 def parse_date(value) value.is_a?(String) ? DateTime.parse(value) : value end
prepare_request_string()
click to toggle source
# File lib/iyzi/pki_builder.rb, line 18 def prepare_request_string ordered_params.join(',') end
request_string()
click to toggle source
# File lib/iyzi/pki_builder.rb, line 13 def request_string str = prepare_request_string "[#{str}]" unless str.empty? end
Private Instance Methods
adder(add_method)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 84 def adder(add_method) add_method || DEFAULT_ADD_METHOD end
assign_params(values, type_cast)
click to toggle source
# File lib/iyzi/pki_builder.rb, line 78 def assign_params(values, type_cast) values.each_pair do |key, value| send(adder(type_cast[key.to_sym]), key, value) end end
orderer()
click to toggle source
# File lib/iyzi/pki_builder.rb, line 74 def orderer ordered_keys || params.keys end