Sha256: baf43cb66da9d0646b08062ce39f48d5712fc27464a2bb5604f7a1a4367c0e33

Contents?: true

Size: 643 Bytes

Versions: 2

Compression:

Stored size: 643 Bytes

Contents

# encoding: utf-8

module HTTPkit
  class Client::MandatoryHandler
    USER_AGENT = 'User-Agent'.freeze
    USER_AGENT_VALUE = "httpkit/#{HTTPkit::VERSION}".freeze
    HOST = 'Host'.freeze
    HOST_VALUE = '%s:%d'.freeze

    def setup(config, _, _)
      @config = config
    end

    def perform(request)
      yield request.with_headers(missing_headers(request))
    end

    private

    def missing_headers(request)
      headers.reject { |k, _| request.headers.key?(k) }
    end

    def headers
      host = sprintf(HOST_VALUE, @config[:address], @config[:port])
      { USER_AGENT => USER_AGENT_VALUE, HOST => host }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
httpkit-0.6.0 lib/httpkit/client/mandatory_handler.rb
httpkit-0.6.0.pre.5 lib/httpkit/client/mandatory_handler.rb