request_recorder 0.0.5 → 0.0.6
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 +1 -1
- data/lib/request_recorder/cache_logger.rb +16 -3
- data/lib/request_recorder/redis_logger.rb +16 -5
- data/lib/request_recorder/version.rb +1 -1
- data/spec/request_recorder/cache_logger_spec.rb +1 -22
- data/spec/request_recorder/redis_logger_spec.rb +7 -17
- data/spec/spec_helper.rb +36 -0
- metadata +3 -3
data/Gemfile.lock
CHANGED
@@ -7,10 +7,23 @@ module RequestRecorder
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def write(id, text)
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
if id
|
11
|
+
old = read(id)
|
12
|
+
else
|
13
|
+
id = "#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S.%L")}_#{Process.pid}"
|
14
|
+
end
|
15
|
+
@store.write(key(id), "#{old}#{text}")
|
13
16
|
id
|
14
17
|
end
|
18
|
+
|
19
|
+
def read(id)
|
20
|
+
@store.read(key(id))
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def key(id)
|
26
|
+
"#{KEY}.#{id}"
|
27
|
+
end
|
15
28
|
end
|
16
29
|
end
|
@@ -2,15 +2,26 @@ module RequestRecorder
|
|
2
2
|
class RedisLogger
|
3
3
|
KEY = "request_recorder"
|
4
4
|
|
5
|
-
def initialize(
|
6
|
-
@
|
5
|
+
def initialize(store)
|
6
|
+
@store = store
|
7
7
|
end
|
8
8
|
|
9
9
|
def write(id, text)
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
if id
|
11
|
+
old = read(id)
|
12
|
+
else
|
13
|
+
id = "#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S.%L")}_#{Process.pid}"
|
14
|
+
end
|
15
|
+
@store.hset(KEY, id, "#{old}#{text}")
|
13
16
|
id
|
14
17
|
end
|
18
|
+
|
19
|
+
def read(id)
|
20
|
+
@store.hget(KEY, id)
|
21
|
+
end
|
22
|
+
|
23
|
+
def keys
|
24
|
+
@store.hkeys(KEY)
|
25
|
+
end
|
15
26
|
end
|
16
27
|
end
|
@@ -19,26 +19,5 @@ describe RequestRecorder::CacheLogger do
|
|
19
19
|
let(:key){ RequestRecorder::CacheLogger::KEY }
|
20
20
|
let(:logger){ RequestRecorder::CacheLogger.new(store) }
|
21
21
|
|
22
|
-
|
23
|
-
it "returns a unique id" do
|
24
|
-
old = logger.write(nil, "X")
|
25
|
-
sleep 0.01
|
26
|
-
old.should_not == logger.write(nil, "X")
|
27
|
-
end
|
28
|
-
|
29
|
-
it "returns existing ids" do
|
30
|
-
"1111".should == logger.write("1111", "X")
|
31
|
-
end
|
32
|
-
|
33
|
-
it "creates a new entry" do
|
34
|
-
logger.write("1111", "X")
|
35
|
-
store.read("#{key}.1111").should == "X"
|
36
|
-
end
|
37
|
-
|
38
|
-
it "appends to an existing key" do
|
39
|
-
logger.write("1111", "X")
|
40
|
-
logger.write("1111", "X")
|
41
|
-
store.read("#{key}.1111").should == "XX"
|
42
|
-
end
|
43
|
-
end
|
22
|
+
it_behaves_like "a logger"
|
44
23
|
end
|
@@ -5,26 +5,16 @@ describe RequestRecorder::RedisLogger do
|
|
5
5
|
let(:key){ RequestRecorder::RedisLogger::KEY }
|
6
6
|
let(:logger){ RequestRecorder::RedisLogger.new(store) }
|
7
7
|
|
8
|
-
|
9
|
-
it "returns a unique id" do
|
10
|
-
old = logger.write(nil, "X")
|
11
|
-
sleep 0.01
|
12
|
-
old.should_not == logger.write(nil, "X")
|
13
|
-
end
|
14
|
-
|
15
|
-
it "returns existing ids" do
|
16
|
-
"1111".should == logger.write("1111", "X")
|
17
|
-
end
|
8
|
+
it_behaves_like "a logger"
|
18
9
|
|
19
|
-
|
20
|
-
|
21
|
-
|
10
|
+
context "#keys" do
|
11
|
+
it "lists the keys" do
|
12
|
+
logger.write("xxx", "X")
|
13
|
+
logger.keys.should == ["xxx"]
|
22
14
|
end
|
23
15
|
|
24
|
-
it "
|
25
|
-
logger.
|
26
|
-
logger.write("1111", "X")
|
27
|
-
store.hget(key, "1111").should == "XX"
|
16
|
+
it "returns empty array for empty keys" do
|
17
|
+
logger.keys.should == []
|
28
18
|
end
|
29
19
|
end
|
30
20
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -23,3 +23,39 @@ end
|
|
23
23
|
|
24
24
|
class Car < ActiveRecord::Base
|
25
25
|
end
|
26
|
+
|
27
|
+
shared_examples "a logger" do
|
28
|
+
context "#read" do
|
29
|
+
it "is nil on not found" do
|
30
|
+
logger.read("xxx").should == nil
|
31
|
+
end
|
32
|
+
|
33
|
+
it "finds" do
|
34
|
+
logger.write("xxx", "X")
|
35
|
+
logger.read("xxx").should == "X"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "#write" do
|
40
|
+
it "returns a unique id" do
|
41
|
+
old = logger.write(nil, "X")
|
42
|
+
sleep 0.01
|
43
|
+
old.should_not == logger.write(nil, "X")
|
44
|
+
end
|
45
|
+
|
46
|
+
it "returns existing ids" do
|
47
|
+
"1111".should == logger.write("1111", "X")
|
48
|
+
end
|
49
|
+
|
50
|
+
it "creates a new entry" do
|
51
|
+
logger.write("1111", "X")
|
52
|
+
logger.read("1111").should == "X"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "appends to an existing key" do
|
56
|
+
logger.write("1111", "X")
|
57
|
+
logger.write("1111", "X")
|
58
|
+
logger.read("1111").should == "XX"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
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.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -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: 3828955395049011862
|
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: 3828955395049011862
|
76
76
|
requirements: []
|
77
77
|
rubyforge_project:
|
78
78
|
rubygems_version: 1.8.24
|