request_recorder 0.0.4 → 0.0.5

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.0.4)
4
+ request_recorder (0.0.5)
5
5
  rack
6
6
 
7
7
  GEM
data/Readme.md CHANGED
@@ -20,7 +20,7 @@ Add to your middleware stack:
20
20
  Usage
21
21
  =====
22
22
 
23
- - request a page with `/something?__request_recording=10` -> record next 10 requests from my browser
23
+ - request a page with `/something?__request_recording=10|my-session-name` -> record next 10 requests from my browser
24
24
  - redis 'request_recorder' gets a new entry with all the logging info from rails + activerecord
25
25
  - go to redis or build a nice frontend
26
26
 
@@ -7,8 +7,9 @@ module RequestRecorder
7
7
  end
8
8
 
9
9
  def write(id, text)
10
- id = "#{KEY}.#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S.%L")}_#{Process.pid}" unless id
11
- @store.write(id, @store.read(id).to_s + text)
10
+ id = "#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S.%L")}_#{Process.pid}" unless id
11
+ key = "#{KEY}.#{id}"
12
+ @store.write(key, @store.read(key).to_s + text)
12
13
  id
13
14
  end
14
15
  end
@@ -39,12 +39,9 @@ module RequestRecorder
39
39
 
40
40
  def read_state_from_env(env)
41
41
  request = Rack::Request.new(env)
42
- if request.cookies[MARKER]
43
- steps, id = request.cookies[MARKER].split(SEPARATOR)
44
- [steps.to_i, id]
45
- else
46
- [env["QUERY_STRING"][/#{MARKER}=(\d+)/, 1].to_i, nil]
47
- end
42
+ value = request.cookies[MARKER] || env["QUERY_STRING"][/#{MARKER}=([^&]+)/, 1]
43
+ steps, id = value.split(SEPARATOR)
44
+ [steps.to_i, id]
48
45
  end
49
46
 
50
47
  def response_with_data_in_cookie(result, to_go, id)
@@ -1,3 +1,3 @@
1
1
  module RequestRecorder
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -16,6 +16,7 @@ describe RequestRecorder::CacheLogger do
16
16
  end
17
17
 
18
18
  let(:store){ Store.new }
19
+ let(:key){ RequestRecorder::CacheLogger::KEY }
19
20
  let(:logger){ RequestRecorder::CacheLogger.new(store) }
20
21
 
21
22
  context "#write" do
@@ -31,13 +32,13 @@ describe RequestRecorder::CacheLogger do
31
32
 
32
33
  it "creates a new entry" do
33
34
  logger.write("1111", "X")
34
- store.read("1111").should == "X"
35
+ store.read("#{key}.1111").should == "X"
35
36
  end
36
37
 
37
38
  it "appends to an existing key" do
38
39
  logger.write("1111", "X")
39
40
  logger.write("1111", "X")
40
- store.read("1111").should == "XX"
41
+ store.read("#{key}.1111").should == "XX"
41
42
  end
42
43
  end
43
44
  end
@@ -31,6 +31,11 @@ describe RequestRecorder do
31
31
  stored.values.last.should include "SELECT"
32
32
  end
33
33
 
34
+ it "starts with a given key" do
35
+ middleware.call({"QUERY_STRING" => "__request_recording=10|abcdefg"})
36
+ redis.hget(redis_key, "abcdefg").should include "SELECT"
37
+ end
38
+
34
39
  it "blows up if you go over the maximum" do
35
40
  status, headers, body = middleware.call("QUERY_STRING" => "__request_recording=99999")
36
41
  status.should == 500
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.0.4
4
+ version: 0.0.5
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-10-19 00:00:00.000000000 Z
12
+ date: 2012-10-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -63,7 +63,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  segments:
65
65
  - 0
66
- hash: 4604048949302387428
66
+ hash: -3767464364914123814
67
67
  required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  none: false
69
69
  requirements:
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  segments:
74
74
  - 0
75
- hash: 4604048949302387428
75
+ hash: -3767464364914123814
76
76
  requirements: []
77
77
  rubyforge_project:
78
78
  rubygems_version: 1.8.24