Sha256: 31a8b695be57d70d0d066e242b79003f34d7cd77d027202a47cc84b33c0424fb

Contents?: true

Size: 616 Bytes

Versions: 1

Compression:

Stored size: 616 Bytes

Contents

require 'request-replay'

class RequestReplay::Proxy
  def initialize host, options={}
    @host, @options = host, options
    # since we're hijacking, we don't manage connections
    (@options[:add_headers] ||= {})['Connection'] ||= 'close'
  end

  def call env
    replay(rewrite_env(env), env['rack.hijack'].call)
    [200, {}, []]
  end

  def replay env, io
    RequestReplay.new(env, @host, @options).start do |sock|
      IO.copy_stream(sock, io)
    end
  ensure
    io.close
  end

  def rewrite_env env
    if rewrite = @options[:rewrite_env]
      rewrite.call(env)
    else
      env
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
request-replay-0.7.1 lib/request-replay/proxy.rb