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
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 = "#{
|
11
|
-
|
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
|
-
|
43
|
-
|
44
|
-
|
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)
|
@@ -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
|
+
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-
|
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:
|
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:
|
75
|
+
hash: -3767464364914123814
|
76
76
|
requirements: []
|
77
77
|
rubyforge_project:
|
78
78
|
rubygems_version: 1.8.24
|