Sha256: c7eedfd21dd5a5527cf7e6d8e100838f8794080f5f534cddc550353fb32d504d

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 KB

Contents

require 'rest_client'
require 'json'
require 'set'

require_relative '../shippo' unless defined?(Shippo) && Shippo.respond_to?(:dir_r)

require 'shippo/exceptions'
require 'shippo/api/category'
require 'shippo/api/request'
require 'shippo/api/resource'

module Shippo
  module API
    @base     = 'https://api.goshippo.com/'
    @version  = nil
    @token    = ''
    @debug    = Integer(ENV['SHIPPO_DEBUG'] || 0) > 0 ? true : false
    @warnings = true

    class << self
      attr_accessor :base, :version, :token, :debug, :warnings
      # @param [Symbol] method One of :get, :put, :post
      # @param [String] uri the URL component after the first slash but before params
      # @param [Hash] params hash of optional parameters to add to the URL
      # @param [Hash] headers optionally added headers
      def request(method, uri, params = {}, headers = {})
        ::Shippo::API::Request.new(method:  method,
                                   uri:     uri,
                                   params:  params,
                                   headers: headers).execute
      end

      %i[get put post].each do |method|
        define_method method do |*args|
          uri, params, headers = *args
          self.request(method, uri, params || {}, headers || {})
        end
      end

      def debug?
        self.debug
      end
    end
  end
end

Dir[File.dirname(__FILE__) + '/api/*.rb'].each {|file| require file }
Dir[File.dirname(__FILE__) + '/api/transformers/*.rb'].each {|file| require file }
Dir[File.dirname(__FILE__) + '/api/extend/*.rb'].each {|file| require file }
Dir[File.dirname(__FILE__) + '/model/*.rb'].each {|file| require file }

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shippo-2.0.6 lib/shippo/api.rb
shippo-2.0.5 lib/shippo/api.rb