class Suretax::Configuration

Constants

CANCEL_VERSIONS
REQUEST_VERSIONS

Attributes

base_url[RW]
cancel_version[RW]
client_number[RW]
logger[RW]
request_version[RW]
validation_key[RW]

Public Class Methods

new() click to toggle source
# File lib/suretax/configuration.rb, line 13
def initialize
  register_currencies
  @base_url        = test_host
  @request_version = REQUEST_VERSIONS.max
  @cancel_version  = CANCEL_VERSIONS.max
end

Public Instance Methods

cancel_path() click to toggle source
# File lib/suretax/configuration.rb, line 49
def cancel_path
  @cancel_path ||=
    "/Services/V%02d/SureTax.asmx/CancelPostRequest" % cancel_version
end
cancel_version=(version_number) click to toggle source
# File lib/suretax/configuration.rb, line 34
def cancel_version=(version_number)
  version = version_number.to_i
  if CANCEL_VERSIONS.include?(version)
    @cancel_version = version
  else
    raise(ArgumentError, "version must be in #{CANCEL_VERSIONS.join(', ')}")
  end
  @cancel_path = nil
end
request_path() click to toggle source
# File lib/suretax/configuration.rb, line 44
def request_path
  @request_path ||=
    "/Services/V%02d/SureTax.asmx/PostRequest" % request_version
end
request_version=(version_number) click to toggle source
# File lib/suretax/configuration.rb, line 24
def request_version=(version_number)
  version = version_number.to_i
  if REQUEST_VERSIONS.include?(version.to_i)
    @request_version = version
  else
    raise(ArgumentError, "version must be in #{REQUEST_VERSIONS.join(', ')}")
  end
  @request_path = nil
end
test?() click to toggle source
# File lib/suretax/configuration.rb, line 20
def test?
  base_url == test_host
end

Private Instance Methods

register_currencies() click to toggle source
# File lib/suretax/configuration.rb, line 60
def register_currencies
  register_dollar_with_six_decimal_places
end
register_dollar_with_six_decimal_places() click to toggle source
# File lib/suretax/configuration.rb, line 64
def register_dollar_with_six_decimal_places
  Money::Currency.register(
    priority: 1,
    iso_code: "US6",
    iso_numeric: "840",
    name: "Dollar with six decimal places",
    symbol: "$",
    subunit: "Cent",
    subunit_to_unit: 1_000_000,
    symbol_first: true,
    html_entity: "$",
    decimal_mark: ".",
    thousands_separator: ",",
    symbolize_names: true
  )
end
test_host() click to toggle source
# File lib/suretax/configuration.rb, line 56
def test_host
  "https://testapi.taxrating.net"
end