lib/active_merchant/billing/gateways/d_local.rb in activemerchant-1.107.4 vs lib/active_merchant/billing/gateways/d_local.rb in activemerchant-1.108.0
- old
+ new
@@ -116,13 +116,23 @@
return unless address = options[:billing_address] || options[:address]
address_object = {}
address_object[:state] = address[:state] if address[:state]
address_object[:city] = address[:city] if address[:city]
- address_object[:zip_code] = address[:zip_code] if address[:zip_code]
- address_object[:street] = address[:street] if address[:street]
- address_object[:number] = address[:number] if address[:number]
+ address_object[:zip_code] = address[:zip] if address[:zip]
+ address_object[:street] = address[:street] || parse_street(address) if parse_street(address)
+ address_object[:number] = address[:number] || parse_house_number(address) if parse_house_number(address)
address_object
+ end
+
+ def parse_street(address)
+ street = address[:address1].split(/\s+/).keep_if { |x| x !~ /\d/ }.join(' ')
+ street.empty? ? nil : street
+ end
+
+ def parse_house_number(address)
+ house = address[:address1].split(/\s+/).keep_if { |x| x =~ /\d/ }.join(' ')
+ house.empty? ? nil : house
end
def add_card(post, card, action, options={})
post[:card] = {}
post[:card][:holder_name] = card.name