Sha256: ef3faecc70cfb6822c2453e2f5731633870108e069c48e3d12ab89ea471ccf08

Contents?: true

Size: 1.43 KB

Versions: 5

Compression:

Stored size: 1.43 KB

Contents

module ApiClient
  # ApiClient::Configuration provides a way to configure ApiClient globally.
  class Configuration
    attr_accessor :mock, :hydra
    attr_reader :header

    # Return the api url.
    #
    # @return [String] the api url.
    def path
      @paths.each do |name, path|
        raise Exceptions::BadlyConfigured.new(name) unless path.size > 1
      end
      @paths
    end

    # Set the api url.
    #
    # @param [String] path api url.
    def path=(path)
      path = "#{path}/" unless path[path.size - 1, 1] == '/'
      @paths = { :default => path }
    end

    # Set several api urls.
    #
    # @param [Hash] paths hash with paths to api urls.
    def paths=(paths = {})
      @paths = {}
      paths.each do |name, path|
        if path[path.size - 1, 1] == '/'
          @paths[name] = path
        else
          @paths[name] = "#{path}/"
        end
      end
    end

    # Set the default params of header.
    #
    # @param [Hash] header the default header for requisitions.
    def header=(header = {})
      @header = { 'Content-Type' => 'application/json' }.merge(header)
    end

    # Set a basic authentication for all requisitions.
    #
    # @param [String] account the user for requisitions.
    # @param [String] password the password for requisitions.
    def basic_auth(account, password)
      @header.merge!({ 'Authorization' => "Basic #{["#{account}:#{password}"].pack('m').delete("\r\n")}" })
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
api-client-3.0.0 lib/api-client/configuration.rb
api-client-2.7.0 lib/api-client/configuration.rb
api-client-2.6.0 lib/api-client/configuration.rb
api-client-2.5.0 lib/api-client/configuration.rb
api-client-2.5.0.rc1 lib/api-client/configuration.rb