Sha256: 8d72732a3841c905019e2a14af0322ec2cc325dbc820f293a50bbb4930f61700

Contents?: true

Size: 958 Bytes

Versions: 14

Compression:

Stored size: 958 Bytes

Contents

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

    # 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

14 entries across 14 versions & 4 rubygems

Version Path
faraday-0.8.11 lib/faraday/request/authorization.rb
faraday-0.8.10 lib/faraday/request/authorization.rb
vagrant-tiktalik-0.0.3 vendor/bundle/ruby/2.0.0/gems/faraday-0.8.9/lib/faraday/request/authorization.rb
faraday-0.8.9 lib/faraday/request/authorization.rb
faraday-0.8.8 lib/faraday/request/authorization.rb
faraday-0.8.7 lib/faraday/request/authorization.rb
vagrant-actionio-0.0.9 vendor/bundle/gems/faraday-0.8.6/lib/faraday/request/authorization.rb
faraday-0.8.6 lib/faraday/request/authorization.rb
faraday-0.8.5 lib/faraday/request/authorization.rb
faraday-0.8.4 lib/faraday/request/authorization.rb
faraday-0.8.2 lib/faraday/request/authorization.rb
avdi-faraday-0.8.1 lib/faraday/request/authorization.rb
faraday-0.8.1 lib/faraday/request/authorization.rb
faraday-0.8.0 lib/faraday/request/authorization.rb