class ActiveTax::Tax

Attributes

address[RW]
api_class[RW]
state[RW]

Public Class Methods

new(address) click to toggle source
# File lib/active_tax/tax.rb, line 10
def initialize(address)
  self.state = address[:state]
  self.address = address

  determine_state_api
end
rate(address={}) click to toggle source
# File lib/active_tax/tax.rb, line 5
def self.rate(address={})
  raise StandardError, "You must provide a state to use ActiveTax::Tax.rate" unless address[:state]
  self.new(address).rate
end

Public Instance Methods

location_code() click to toggle source
# File lib/active_tax/tax.rb, line 29
def location_code
  tax && tax.location_code
end
rate() click to toggle source
# File lib/active_tax/tax.rb, line 25
def rate
  tax && tax.rate
end
rate_from_address(address={}) click to toggle source
# File lib/active_tax/tax.rb, line 17
def rate_from_address(address={})
  raise "#rate_from_address is deprecated. Use #rate instead."
end
result_code() click to toggle source
# File lib/active_tax/tax.rb, line 33
def result_code
  tax && tax.result_code
end
tax() click to toggle source
# File lib/active_tax/tax.rb, line 21
def tax
  @tax ||= self.api_class.tax(address)
end

Private Instance Methods

determine_state_api() click to toggle source
# File lib/active_tax/tax.rb, line 39
def determine_state_api
  case self.state.upcase
  when "WA", "WASHINGTON" then self.api_class = States::WA
  else raise StandardError, "API for #{self.state.upcase} not yet implemented in ActiveTax."
  end
end