Class: RequestReplay::Proxy
- Inherits:
-
Object
- Object
- RequestReplay::Proxy
- Defined in:
- lib/request-replay/proxy.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(host, options = {}) ⇒ Proxy
constructor
A new instance of Proxy.
- #replay(env, io) ⇒ Object
- #rewrite_env(env) ⇒ Object
Constructor Details
#initialize(host, options = {}) ⇒ Proxy
Returns a new instance of Proxy.
5 6 7 8 9 |
# File 'lib/request-replay/proxy.rb', line 5 def initialize host, ={} @host, @options = host, # since we're hijacking, we don't manage connections (@options[:add_headers] ||= {})['Connection'] ||= 'close' end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 14 |
# File 'lib/request-replay/proxy.rb', line 11 def call env replay(rewrite_env(env), env['rack.hijack'].call) [200, {}, []] end |
#replay(env, io) ⇒ Object
16 17 18 19 20 21 22 |
# 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) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/request-replay/proxy.rb', line 24 def rewrite_env env if rewrite = @options[:rewrite_env] rewrite.call(env) else env end end |