request_recorder 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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