Sha256: e94c63bd6506fba305d372aec167df1381bdf154cfd29bc5c8fd1481b545edf1

Contents?: true

Size: 750 Bytes

Versions: 1

Compression:

Stored size: 750 Bytes

Contents

module Terminus
  class Proxy
    
    class External < Rack::Proxy
      def initialize(uri)
        @uri = uri
      end
      
      def rewrite_env(env)
        env = env.dup
        env['SERVER_NAME'] = @uri.host
        env['SERVER_PORT'] = @uri.port
        env['HTTP_HOST']   = "#{@uri.host}:#{@uri.port}"
        env.delete('HTTP_ACCEPT_ENCODING')
        
        if scheme = @uri.scheme
          env['rack.url_scheme'] = scheme
        end
        
        env
      end
      
      def call(env)
        dock_host = env['SERVER_NAME']
        response = super
        response[1].delete('transfer-encoding')
        response[2].extend(Rewrite)
        response[2].dock_host = dock_host
        response
      end
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
terminus-0.4.0 lib/terminus/proxy/external.rb