request_recorder 0.0.3 → 0.0.4
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/Readme.md +7 -4
- data/lib/request_recorder/cache_logger.rb +15 -0
- data/lib/request_recorder/redis_logger.rb +1 -1
- data/lib/request_recorder/version.rb +1 -1
- data/lib/request_recorder.rb +0 -1
- data/spec/request_recorder/cache_logger_spec.rb +43 -0
- data/spec/request_recorder/redis_logger_spec.rb +30 -0
- data/spec/spec_helper.rb +2 -0
- metadata +6 -3
data/Gemfile.lock
CHANGED
data/Readme.md
CHANGED
@@ -8,11 +8,14 @@ Install
|
|
8
8
|
Add to your middleware stack:
|
9
9
|
|
10
10
|
require "request_recorder"
|
11
|
-
use RequestRecorder::Middleware, :store => RequestRecorder::RedisLogger.new(Redis.new)
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
require "request_recorder/cache_logger"
|
13
|
+
use RequestRecorder::Middleware, :store => RequestRecorder::CacheLogger.new(Rails.cache)
|
14
|
+
|
15
|
+
-- or --
|
16
|
+
|
17
|
+
require "request_recorder/redis_logger"
|
18
|
+
use RequestRecorder::Middleware, :store => RequestRecorder::RedisLogger.new(Redis.new)
|
16
19
|
|
17
20
|
Usage
|
18
21
|
=====
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module RequestRecorder
|
2
|
+
class CacheLogger
|
3
|
+
KEY = "request_recorder"
|
4
|
+
|
5
|
+
def initialize(store)
|
6
|
+
@store = store
|
7
|
+
end
|
8
|
+
|
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)
|
12
|
+
id
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -8,7 +8,7 @@ module RequestRecorder
|
|
8
8
|
|
9
9
|
def write(id, text)
|
10
10
|
old = (id ? @redis.hget(KEY, id) : "")
|
11
|
-
id = "#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S")}_#{Process.pid}" unless id
|
11
|
+
id = "#{Time.now.utc.strftime("%Y-%m-%d %H:%M:%S.%L")}_#{Process.pid}" unless id
|
12
12
|
@redis.hset(KEY, id, old.to_s + text)
|
13
13
|
id
|
14
14
|
end
|
data/lib/request_recorder.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe RequestRecorder::CacheLogger do
|
4
|
+
class Store
|
5
|
+
def initialize
|
6
|
+
@data = {}
|
7
|
+
end
|
8
|
+
|
9
|
+
def read(x)
|
10
|
+
@data[x]
|
11
|
+
end
|
12
|
+
|
13
|
+
def write(x,y)
|
14
|
+
@data[x] = y
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:store){ Store.new }
|
19
|
+
let(:logger){ RequestRecorder::CacheLogger.new(store) }
|
20
|
+
|
21
|
+
context "#write" do
|
22
|
+
it "returns a unique id" do
|
23
|
+
old = logger.write(nil, "X")
|
24
|
+
sleep 0.01
|
25
|
+
old.should_not == logger.write(nil, "X")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns existing ids" do
|
29
|
+
"1111".should == logger.write("1111", "X")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "creates a new entry" do
|
33
|
+
logger.write("1111", "X")
|
34
|
+
store.read("1111").should == "X"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "appends to an existing key" do
|
38
|
+
logger.write("1111", "X")
|
39
|
+
logger.write("1111", "X")
|
40
|
+
store.read("1111").should == "XX"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe RequestRecorder::RedisLogger do
|
4
|
+
let(:store){ FakeRedis::Redis.new }
|
5
|
+
let(:key){ RequestRecorder::RedisLogger::KEY }
|
6
|
+
let(:logger){ RequestRecorder::RedisLogger.new(store) }
|
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
|
18
|
+
|
19
|
+
it "creates a new entry" do
|
20
|
+
logger.write("1111", "X")
|
21
|
+
store.hget(key, "1111").should == "X"
|
22
|
+
end
|
23
|
+
|
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"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/spec/spec_helper.rb
CHANGED
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.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -39,10 +39,13 @@ files:
|
|
39
39
|
- Rakefile
|
40
40
|
- Readme.md
|
41
41
|
- lib/request_recorder.rb
|
42
|
+
- lib/request_recorder/cache_logger.rb
|
42
43
|
- lib/request_recorder/middleware.rb
|
43
44
|
- lib/request_recorder/redis_logger.rb
|
44
45
|
- lib/request_recorder/version.rb
|
45
46
|
- request_recorder.gemspec
|
47
|
+
- spec/request_recorder/cache_logger_spec.rb
|
48
|
+
- spec/request_recorder/redis_logger_spec.rb
|
46
49
|
- spec/request_recorder_spec.rb
|
47
50
|
- spec/spec_helper.rb
|
48
51
|
homepage: http://github.com/grosser/request_recorder
|
@@ -60,7 +63,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
63
|
version: '0'
|
61
64
|
segments:
|
62
65
|
- 0
|
63
|
-
hash:
|
66
|
+
hash: 4604048949302387428
|
64
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
68
|
none: false
|
66
69
|
requirements:
|
@@ -69,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
72
|
version: '0'
|
70
73
|
segments:
|
71
74
|
- 0
|
72
|
-
hash:
|
75
|
+
hash: 4604048949302387428
|
73
76
|
requirements: []
|
74
77
|
rubyforge_project:
|
75
78
|
rubygems_version: 1.8.24
|