Sha256: 46e99fdb33999487eedff0d8a05b07121b21518d454db4e19771ba92cbfc93ee

Contents?: true

Size: 1.17 KB

Versions: 22

Compression:

Stored size: 1.17 KB

Contents

require File.expand_path('../connection', __FILE__)
require File.expand_path('../request', __FILE__)
require 'active_support/notifications'
require 'logger'

module AvaTax
  class API

    attr_accessor *Configuration::VALID_OPTIONS_KEYS

    def initialize(options={})
      options = AvaTax.options.merge(options)
      # The default logger in Faraday is configured exactly the same as this one, but we cannot get a reference to it, so we will instantiate our own.
      default_logger =  Logger.new(STDOUT)
      Configuration::VALID_OPTIONS_KEYS.each do |key|
        send("#{key}=", options[key])
      end
      ActiveSupport::Notifications.subscribe("request.faraday") do |name, starts, ends, _, env|
        url      = env[:url]
        duration = (ends - starts) * 1000

        if custom_logger
          custom_logger.info "The request to #{url} took #{duration} ms."
        elsif logger
          default_logger.info "The request to #{url} took #{duration} ms."
        end
      end
    end

    def config
      conf = {}
      Configuration::VALID_OPTIONS_KEYS.each do |key|
        conf[key] = send key
      end
      conf
    end

    include Connection
    include Request
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
avatax-25.1.0 lib/avatax/api.rb
avatax-24.12.0 lib/avatax/api.rb
avatax-24.11.2 lib/avatax/api.rb
avatax-24.10.0 lib/avatax/api.rb
avatax-24.8.2 lib/avatax/api.rb
avatax-24.6.3 lib/avatax/api.rb
avatax-24.6.1 lib/avatax/api.rb
avatax-24.4.2 lib/avatax/api.rb
avatax-24.2.0 lib/avatax/api.rb
avatax-23.11.0 lib/avatax/api.rb
avatax-23.10.1 lib/avatax/api.rb
avatax-23.8.1 lib/avatax/api.rb
avatax-23.7.1 lib/avatax/api.rb
avatax-23.7.0 lib/avatax/api.rb
avatax-23.6.1 lib/avatax/api.rb
avatax-23.5.0 lib/avatax/api.rb
avatax-23.4.1 lib/avatax/api.rb
avatax-23.3.1 lib/avatax/api.rb
avatax-23.3.0 lib/avatax/api.rb
avatax-23.2.0 lib/avatax/api.rb