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
         |