Sha256: dbf7fb4bf7ed363f61c3ec23a3df1b473bd12c93e7886e219696a57aa638e459

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

require 'faraday_middleware'
require 'her'

require 'rancher/api/helpers'
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.1 lib/rancher/api.rb