ShippingEasy/shipping_easy-ruby

View on GitHub
lib/shipping_easy/configuration.rb

Summary

Maintainability
A
0 mins
Test Coverage
# Configuration class that stores configuration options for the ShippingEasy API.
#
# ShippingEasy requires an API key and secret combination to authenticate against its API. At the very least these must be
# supplied in the configuration.
#
# Configuration options are typically set via the ShippingEasy.config method.
# @see ShippingEasy.configure
# @example
#   ShippingEasy.configure do |config|
#     config.api_key = "12345"
#     config.api_secret = "XXXXXXXXXXXXXXXXXXXXXXXX"
#   end
#
module ShippingEasy
  class Configuration
    LEGACY_URL = "https://app.shippingeasy.com"
    DEFAULT_URL = "https://api.shippingeasy.com"

    attr_reader   :base_url
    attr_accessor :api_key,
                  :api_secret,
                  :partner_api_key,
                  :partner_api_secret,
                  :api_version,
                  :http_adapter

    # Creates a configuration object, setting the default attributes.
    def initialize
      @http_adapter = ShippingEasy::Http::FaradayAdapter
      @base_url = DEFAULT_URL
    end

    def base_url=(val)
      if val == LEGACY_URL
        warn "Legacy URL detected, updating to api.shippingeasy.com"
        @base_url = DEFAULT_URL
      else
        @base_url = val
      end
    end
  end
end