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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- request_recorder (0.0.5)
4
+ request_recorder (0.0.6)
5
5
  rack
6
6
 
7
7
  GEM
@@ -7,10 +7,23 @@ module RequestRecorder
7
7
  end
8
8
 
9
9
  def write(id, 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)
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(redis)
6
- @redis = redis
5
+ def initialize(store)
6
+ @store = store
7
7
  end
8
8
 
9
9
  def write(id, text)
10
- old = (id ? @redis.hget(KEY, id) : "")
11
- id = "#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S.%L")}_#{Process.pid}" unless id
12
- @redis.hset(KEY, id, old.to_s + text)
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
@@ -1,3 +1,3 @@
1
1
  module RequestRecorder
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  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
- context "#write" do
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
- context "#write" do
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
- it "creates a new entry" do
20
- logger.write("1111", "X")
21
- store.hget(key, "1111").should == "X"
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 "appends to an existing key" do
25
- logger.write("1111", "X")
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.5
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: -3767464364914123814
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: -3767464364914123814
75
+ hash: 3828955395049011862
76
76
  requirements: []
77
77
  rubyforge_project:
78
78
  rubygems_version: 1.8.24