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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- request_recorder (0.0.3)
4
+ request_recorder (0.0.4)
5
5
  rack
6
6
 
7
7
  GEM
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
- ### No Redis, No problem
14
- If you do not have redis, you can write your own logger, you only need a .write method,
15
- see [RedisLogger](https://github.com/grosser/request_recorder/blob/master/lib/request_recorder/redis_logger.rb)
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
@@ -1,3 +1,3 @@
1
1
  module RequestRecorder
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -1,6 +1,5 @@
1
1
  require "request_recorder/version"
2
2
  require "request_recorder/middleware"
3
- require "request_recorder/redis_logger"
4
3
 
5
4
  module RequestRecorder
6
5
  end
@@ -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
@@ -1,4 +1,6 @@
1
1
  require "request_recorder"
2
+ require "request_recorder/redis_logger"
3
+ require "request_recorder/cache_logger"
2
4
 
3
5
  require "active_record"
4
6
  require "fakeredis"
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.3
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: 4362379118001674709
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: 4362379118001674709
75
+ hash: 4604048949302387428
73
76
  requirements: []
74
77
  rubyforge_project:
75
78
  rubygems_version: 1.8.24