Class: Rack::Recorder
- Inherits:
-
Object
- Object
- Rack::Recorder
- Defined in:
- lib/rack/recorder.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options) ⇒ Recorder
constructor
A new instance of Recorder.
Constructor Details
#initialize(app, options) ⇒ Recorder
Returns a new instance of Recorder.
6 7 8 9 10 |
# File 'lib/rack/recorder.rb', line 6 def initialize(app, ) @app = app @file = [:file] or raise "must pass :file argument to Rack::Recorder" @all_requests = [] end |
Class Method Details
.revive(test_file) ⇒ Object
29 30 31 |
# File 'lib/rack/recorder.rb', line 29 def self.revive(test_file) ::File.open(test_file, 'r') { |f| Marshal.load(f) } end |
Instance Method Details
#call(env) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rack/recorder.rb', line 12 def call env req = Rack::Request.new(env) request = {:method => req.request_method, :body => req.body.read, :url => req.url } req.body.rewind if req.body status, ctype, body = @app.call env response = {:status => status, :content_type => ctype['Content-Type']} if body response[:body] = body.read body.rewind end @all_requests << { :request => request, :response => response } ::File.open(@file, "w") { |f| Marshal.dump(@all_requests , f) } [status,ctype,body] end |