class Avatax::Configuration

Constants

PRODUCTION
REST_URLS
SANDBOX

Attributes

base_url[R]
env[R]
headers[R]
logger[R]
password[R]
sandbox[R]
username[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/avatax/configuration.rb, line 14
def initialize(args = {})
  validate_args(args)

  @env = args[:env].to_sym
  @sandbox = @env == SANDBOX
  @base_url = REST_URLS[env]

  @headers = args[:headers] || {}

  @username = args[:username]
  @password = args[:password]

  @logger = args[:logger] || Logger.new(STDOUT)
end

Private Instance Methods

validate_args(args) click to toggle source
# File lib/avatax/configuration.rb, line 31
def validate_args(args)
  raise ArgumentError, 'username is required' if args[:username].blank?
  raise ArgumentError, 'password is required' if args[:password].blank?
  raise ArgumentError, 'env is required' if args[:env].blank?

  return if [SANDBOX, PRODUCTION].include?(args[:env].to_sym)
  raise ArgumentError, 'env must be of :sandbox or :production'
end