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