Module: AddressValidation

Defined in:
app/services/address_validation.rb,
app/services/address_validation/result.rb,
app/services/address_validation/candidate.rb,
app/services/address_validation/providers/ship_engine.rb

Overview

Address verification against external providers (ShipEngine), returning
normalized candidates and a status.

Defined Under Namespace

Modules: Providers Classes: Candidate, Result

Class Method Summary collapse

Class Method Details

.lookup_zip(zip, country_iso3:) ⇒ AddressValidation::Candidate?

Best-effort canonical address for a bare postal code — powers the
self-healing postal-code cache (PostalCode.state_for). May return nil.

Parameters:

  • zip (String)
  • country_iso3 (String)

    "USA" or "CAN"

Returns:



31
32
33
# File 'app/services/address_validation.rb', line 31

def lookup_zip(zip, country_iso3:)
  provider.lookup_zip(zip, country_iso3: country_iso3)
end

.providerAddressValidation::Providers::ShipEngine

Returns a fresh provider instance.

Returns:



36
37
38
# File 'app/services/address_validation.rb', line 36

def provider
  Providers::ShipEngine.new
end

.verify(address) ⇒ AddressValidation::Result

Verifies a full postal address.

Parameters:

  • address (#street1, #street2, #city, #state_code, #zip, #country_iso3)

    any object quacking like an Address (the model, or a test double).

Returns:



21
22
23
# File 'app/services/address_validation.rb', line 21

def verify(address)
  provider.verify(address)
end