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