class SuperGood::SolidusTaxjar::Addresses
Attributes
api[R]
Public Class Methods
new(api: ::SuperGood::SolidusTaxjar.api)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 14 def initialize(api: ::SuperGood::SolidusTaxjar.api) @api = api end
normalize(spree_address)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 5 def normalize(spree_address) new.normalize(spree_address) end
possibilities(spree_address)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 9 def possibilities(spree_address) new.possibilities(spree_address) end
Public Instance Methods
normalize(spree_address)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 18 def normalize(spree_address) taxjar_address = taxjar_addresses(spree_address).first return if taxjar_address.nil? ::Spree::Address.immutable_merge(spree_address, { country: us, # TaxJar only supports the US currently. state: state(taxjar_address.state), zipcode: taxjar_address.zip, city: taxjar_address.city, address1: taxjar_address.street }) end
possibilities(spree_address)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 32 def possibilities(spree_address) taxjar_addresses(spree_address).map { |taxjar_address| ::Spree::Address.immutable_merge(spree_address, { country: us, # TaxJar only supports the US currently. state: state(taxjar_address.state), zipcode: taxjar_address.zip, city: taxjar_address.city, address1: taxjar_address.street }) } end
Private Instance Methods
state(abbr)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 58 def state(abbr) us.states.find_by_abbr abbr end
taxjar_addresses(spree_address)
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 48 def taxjar_addresses(spree_address) api.validate_spree_address(spree_address) rescue Taxjar::Error::NotFound [] end
us()
click to toggle source
# File lib/super_good/solidus_taxjar/addresses.rb, line 54 def us ::Spree::Country.find_by iso: "US" end