class RequestReplay::Proxy

Public Class Methods

new(host, options={}) click to toggle source
# File lib/request-replay/proxy.rb, line 5
def initialize host, options={}
  @host, @options = host, options
  # since we're hijacking, we don't manage connections
  (@options[:add_headers] ||= {})['Connection'] ||= 'close'
end

Public Instance Methods

call(env) click to toggle source
# File lib/request-replay/proxy.rb, line 11
def call env
  replay(rewrite_env(env), env['rack.hijack'].call)
  [200, {}, []]
end
replay(env, io) click to toggle source
# File lib/request-replay/proxy.rb, line 16
def replay env, io
  RequestReplay.new(env, @host, @options).start do |sock|
    IO.copy_stream(sock, io)
  end
ensure
  io.close
end
rewrite_env(env) click to toggle source
# File lib/request-replay/proxy.rb, line 24
def rewrite_env env
  if rewrite = @options[:rewrite_env]
    rewrite.call(env)
  else
    env
  end
end