request_recorder 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- request_recorder (0.1.1)
4
+ request_recorder (0.1.2)
5
5
  activerecord
6
6
  rack
7
7
 
data/Readme.md CHANGED
@@ -21,8 +21,8 @@ Usage
21
21
  =====
22
22
 
23
23
  - request a page with `/something?request_recorder=10|my-session-name` -> record next 10 requests from my browser
24
- - redis 'request_recorder' gets a new entry with all the logging info from rails + activerecord
25
- - go to redis or build a nice frontend
24
+ - all the debug-level logging info from rails + activerecord gets stored
25
+ - get log directly from the store or use the frontend
26
26
 
27
27
  Frontend
28
28
  ========
@@ -31,7 +31,7 @@ Frontend
31
31
 
32
32
  use RequestRecorder::Middleware, :frontent_auth => lambda{|env| env.warden.user.is_admin? }
33
33
 
34
- Go to /request_recorder/<key> and see the recorded log.
34
+ Go to `/request_recorder/<key>` and see the recorded log.
35
35
 
36
36
  Author
37
37
  ======
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/mgrosser/code/tools/request_recorder
3
3
  specs:
4
- request_recorder (0.1.0)
4
+ request_recorder (0.1.1)
5
5
  activerecord
6
6
  rack
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/mgrosser/code/tools/request_recorder
3
3
  specs:
4
- request_recorder (0.1.0)
4
+ request_recorder (0.1.1)
5
5
  activerecord
6
6
  rack
7
7
 
@@ -29,13 +29,22 @@ module RequestRecorder
29
29
  else
30
30
  result = nil
31
31
  log = capture_logging do
32
- result = @app.call(env)
32
+ begin
33
+ result = @app.call(env)
34
+ rescue Exception => e
35
+ result = e
36
+ end
33
37
  end
34
38
 
35
39
  steps_left, id = read_state_from_env(env)
36
40
  return [500, {}, "#{MARKER} exceeded maximum value #{MAX_STEPS}"] if steps_left > MAX_STEPS
37
41
  id = persist_log(id, log)
38
- response_with_data_in_cookie(result, steps_left, id)
42
+
43
+ if result.is_a?(Exception)
44
+ raise result
45
+ else
46
+ response_with_data_in_cookie(result, steps_left, id)
47
+ end
39
48
  end
40
49
  end
41
50
 
@@ -1,3 +1,3 @@
1
1
  module RequestRecorder
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -1,10 +1,17 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe RequestRecorder do
4
+ class FooError < RuntimeError;end
5
+
4
6
  let(:original_logger){ ActiveSupport::BufferedLogger.new("/dev/null").instance_variable_get("@log") }
5
7
  let(:activate_logger){ {"QUERY_STRING" => "request_recorder=10"} }
6
8
  let(:inner_app){ lambda{|env|
7
9
  Car.first
10
+ if env["raise"]
11
+ # rails also logs errors
12
+ ActiveRecord::Base.logger.error(env["raise"])
13
+ raise FooError.new(env["raise"])
14
+ end
8
15
  [200, {}, "assadasd"]
9
16
  } }
10
17
  let(:middleware){ RequestRecorder::Middleware.new(inner_app, :store => RequestRecorder::RedisLogger.new(redis)) }
@@ -31,6 +38,15 @@ describe RequestRecorder do
31
38
  stored.values.last.should include "SELECT"
32
39
  end
33
40
 
41
+ it "records exceptions" do
42
+ begin
43
+ middleware.call(activate_logger.merge("raise" => "FooBarError"))
44
+ fail
45
+ rescue FooError
46
+ end
47
+ stored.values.last.should include "FooBarError"
48
+ end
49
+
34
50
  it "still writes to the old log to keep us compliant with 'logging all requests'" do
35
51
  if ActiveRecord::VERSION::MAJOR == 2
36
52
  recorder = StringIO.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request_recorder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-04 00:00:00.000000000 Z
12
+ date: 2012-11-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -87,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
87
  version: '0'
88
88
  segments:
89
89
  - 0
90
- hash: -2711650895206651119
90
+ hash: 2574127840943451255
91
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  none: false
93
93
  requirements:
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  version: '0'
97
97
  segments:
98
98
  - 0
99
- hash: -2711650895206651119
99
+ hash: 2574127840943451255
100
100
  requirements: []
101
101
  rubyforge_project:
102
102
  rubygems_version: 1.8.24