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