Sha256: 518552a3dd4bebfa3990675356fe3362df4da57fd157fb466c51f32bf5fe50f5

Contents?: true

Size: 974 Bytes

Versions: 6

Compression:

Stored size: 974 Bytes

Contents

module Faraday
  class Request::Authorization < Faraday::Middleware
    KEY = "Authorization".freeze unless defined? KEY

    # Public
    def self.header(type, token)
      case token
      when String, Symbol then "#{type} #{token}"
      when Hash then build_hash(type.to_s, token)
      else
        raise ArgumentError, "Can't build an Authorization #{type} header from #{token.inspect}"
      end
    end

    # Internal
    def self.build_hash(type, hash)
      offset = KEY.size + type.size + 3
      comma = ",\n#{' ' * offset}"
      values = []
      hash.each do |key, value|
        values << "#{key}=#{value.to_s.inspect}"
      end
      "#{type} #{values * comma}"
    end

    def initialize(app, type, token)
      @header_value = self.class.header(type, token)
      super(app)
    end

    # Public
    def call(env)
      unless env.request_headers[KEY]
        env.request_headers[KEY] = @header_value
      end
      @app.call(env)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
faraday-0.9.0.rc6 lib/faraday/request/authorization.rb
faraday-0.9.0.rc5 lib/faraday/request/authorization.rb
faraday-0.9.0.rc4 lib/faraday/request/authorization.rb
faraday-0.9.0.rc3 lib/faraday/request/authorization.rb
faraday-0.9.0.rc2 lib/faraday/request/authorization.rb
faraday-0.9.0.rc1 lib/faraday/request/authorization.rb