Sha256: a140453d5f3b281eb6336abb194bc773d5746d61651d14b4fdca02f0d33bb941

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'faraday_middleware'
require 'her'

require 'rancher/api/configuration'
require 'rancher/api/middlewares'
require 'rancher/api/version'
require 'rancher/api/logger'

module Rancher
  module Api
    class << self
      attr_writer :configuration
    end

    def self.setup!
      configure do |_x|
      end
    end

    def self.configuration
      @configuration ||= Configuration.new
    end

    def self.reset
      @configuration = Configuration.new
    end

    def self.configure
      yield(configuration)

      api = Her::API.setup url: configuration.url do |c|
        # Request
        c.request :json

        c.use Her::Middleware::AcceptJSON
        c.use Faraday::Request::BasicAuthentication, configuration.access_key, configuration.secret_key

        # Response
        c.use Rancher::Api::JsonParserMiddleware
        c.use Her::Middleware::DefaultParseJSON
        c.use Faraday::Response::Logger, ActiveSupport::Logger.new(STDOUT) if configuration.verbose

        # Adapter
        c.use Faraday::Adapter::NetHttp
      end

      require 'rancher/api/models'
      api
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rancher-api-beta-0.8.0.pre.beta lib/rancher/api.rb