class SuperGood::SolidusTaxjar::TaxRateCalculator

Attributes

address[R]
api[R]

Public Class Methods

new(address, api: SuperGood::SolidusTaxjar.api) click to toggle source
# File lib/super_good/solidus_taxjar/tax_rate_calculator.rb, line 5
def initialize(address, api: SuperGood::SolidusTaxjar.api)
  @address = address
  @api = api
end

Public Instance Methods

calculate() click to toggle source
# File lib/super_good/solidus_taxjar/tax_rate_calculator.rb, line 10
def calculate
  return no_rate if SuperGood::SolidusTaxjar.test_mode
  return no_rate if incomplete_address?(address)
  return no_rate unless taxable_address?(address)
  cache do
    api.tax_rate_for(address).to_d
  end
rescue => e
  exception_handler.call(e)
  no_rate
end

Private Instance Methods

cache_key() click to toggle source
# File lib/super_good/solidus_taxjar/tax_rate_calculator.rb, line 30
def cache_key
  SuperGood::SolidusTaxjar.cache_key.call(address)
end
no_rate() click to toggle source
# File lib/super_good/solidus_taxjar/tax_rate_calculator.rb, line 26
def no_rate
  BigDecimal(0)
end