class STRIKEIRON_ADDRESS_VERIFICATION::Address

Attributes

city[RW]
error[RW]
is_valid[RW]
open_timeout[RW]
password[RW]
record_type[RW]
request[RW]
response[RW]
state[RW]
status[RW]
status_msg[RW]
street_address[RW]
street_address_2[RW]
timeout[RW]
url[RW]
username[RW]
zip_code[RW]

Public Class Methods

new(args={}) click to toggle source
# File lib/strikeiron_address_verification/address.rb, line 9
def initialize(args={})
  @username = STRIKEIRON_ADDRESS_VERIFICATION.username
  @password = STRIKEIRON_ADDRESS_VERIFICATION.password
  @url = STRIKEIRON_ADDRESS_VERIFICATION.url
  @timeout = STRIKEIRON_ADDRESS_VERIFICATION.timeout.to_i
  @open_timeout = STRIKEIRON_ADDRESS_VERIFICATION.open_timeout.to_i
  @street_address = @street_address_2 = @city = @state = @zip_code = @status = @status_msg = @request = @response = @record_type = @error = ''
  @is_valid = false
  @street_address = args[:street_address] if args[:street_address]
  @street_address_2 = args[:street_address_2] if args[:street_address_2]
  @city = args[:city] if args[:city]
  @state = args[:state] if args[:state]
  @zip_code = args[:zip_code] if args[:zip_code]
  process
end

Private Instance Methods

fire_request() click to toggle source
# File lib/strikeiron_address_verification/address.rb, line 41
def fire_request
  # open_timeout: amount of time to open connection
  # timeout: amount of time to wait for response
  @response = RestClient::Request.execute(:method => :post, :url => @url, :payload => prepare_payload, :headers => {}, :timeout => @timeout, :open_timeout => @open_timeout)
end
is_address_valid?() click to toggle source
# File lib/strikeiron_address_verification/address.rb, line 47
def is_address_valid?
  @status != '304' && @status != '402'
end
prepare_payload() click to toggle source
# File lib/strikeiron_address_verification/address.rb, line 51
def prepare_payload
  payload = {}
  payload[:'LicenseInfo.RegisteredUser.UserID'] = @username
  payload[:'LicenseInfo.RegisteredUser.Password'] = @password
  payload[:'NorthAmericanAddressVerification.AddressLine1'] = @street_address
  payload[:'NorthAmericanAddressVerification.AddressLine2'] = @street_address_2
  payload[:'NorthAmericanAddressVerification.CityStateOrProvinceZIPOrPostalCode'] = "#{@city} #{@state} #{@zip_code}"
  payload[:'NorthAmericanAddressVerification.Country'] = 'US'
  payload[:'NorthAmericanAddressVerification.Casing'] = 'PROPER'
  payload
end
process() click to toggle source
# File lib/strikeiron_address_verification/address.rb, line 27
def process
  begin
    fire_request
    hashed_response = Crack::XML.parse(@response)['WebServiceResponse']['NorthAmericanAddressVerificationResponse']['NorthAmericanAddressVerificationResult']
    @status = hashed_response['ServiceStatus']['StatusNbr']
    @status_msg = hashed_response['ServiceStatus']['StatusDescription']
    @is_valid = is_address_valid?
    @record_type = hashed_response['ServiceResult']['USAddress']['RecordType'] if hashed_response &&  hashed_response['ServiceResult'] && hashed_response['ServiceResult']['USAddress'] && hashed_response['ServiceResult']['USAddress']['RecordType']
  rescue Exception => e
    @error = e.message
  end
  #puts "#{@status.class} #{is_address_valid?}  - address: #{@street_address}"
end