Class: MainStreet::AddressVerifier
- Inherits:
-
Object
- Object
- MainStreet::AddressVerifier
- Defined in:
- lib/mainstreet/address_verifier.rb
Instance Method Summary collapse
- #failure_message ⇒ Object
-
#initialize(address, country: nil, locale: nil) ⇒ AddressVerifier
constructor
A new instance of AddressVerifier.
- #latitude ⇒ Object
- #longitude ⇒ Object
- #result ⇒ Object
- #success? ⇒ Boolean
Constructor Details
#initialize(address, country: nil, locale: nil) ⇒ AddressVerifier
Returns a new instance of AddressVerifier.
3 4 5 6 7 |
# File 'lib/mainstreet/address_verifier.rb', line 3 def initialize(address, country: nil, locale: nil) @address = address @country = country @locale = locale end |
Instance Method Details
#failure_message ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/mainstreet/address_verifier.rb', line 13 def if !result :unconfirmed, "Address can't be confirmed" elsif result.respond_to?(:analysis) analysis = result.analysis if analysis["verification_status"] case analysis["verification_status"] when "Verified" nil # success!! when "Ambiguous", "Partial", "None" :unconfirmed, "Address can't be confirmed" else raise "Unknown verification_status" end elsif analysis["dpv_match_code"] case analysis["dpv_match_code"] when "Y" nil # success!! when "N" :unconfirmed, "Address can't be confirmed" when "S" :apt_unconfirmed, "Apartment or suite can't be confirmed" when "D" :apt_missing, "Apartment or suite is missing" else raise "Unknown dpv_match_code" end end end end |
#latitude ⇒ Object
60 61 62 |
# File 'lib/mainstreet/address_verifier.rb', line 60 def latitude result && result.latitude end |
#longitude ⇒ Object
64 65 66 |
# File 'lib/mainstreet/address_verifier.rb', line 64 def longitude result && result.longitude end |
#result ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/mainstreet/address_verifier.rb', line 45 def result return @result if defined?(@result) @result = begin = {lookup: MainStreet.lookup} [:country] = @country if @country && !usa? # don't use smarty streets zipcode only API # keep mirrored with geocoder gem, including \Z # \Z is the same as \z when strip is used if @address.to_s.strip !~ /\A\d{5}(-\d{4})?\Z/ Geocoder.search(@address, ).first end end end |
#success? ⇒ Boolean
9 10 11 |
# File 'lib/mainstreet/address_verifier.rb', line 9 def success? .nil? end |