request_recorder 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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