persistent-cache-ram 0.4.2 → 0.4.3
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.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/README.md +5 -0
- data/Rakefile +6 -2
- data/lib/persistent-cache.rb +3 -2
- data/lib/persistent-cache/storage/storage_ram.rb +6 -6
- data/lib/persistent-cache/version.rb +1 -1
- data/persistent-cache-ram.gemspec +5 -4
- data/spec/persistent-cache_spec.rb +3 -2
- data/spec/spec_helper.rb +9 -8
- metadata +49 -19
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1c867caa78cd099ecb9e4795f8c53d94304bae4f
         | 
| 4 | 
            +
              data.tar.gz: ff27d400cb26adba02968d7cea2ef455f4b8e59c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c240723401c4a3e3f2c01db7569cf57ad843b2aeec9d15a9d682d224be491d6f0b4cde3361debbe66d0544492d1d6c494bb2e5bbc3423f9ac1102897edf277c1
         | 
| 7 | 
            +
              data.tar.gz: a9309d9b7bb39254c6ac06b5c32d7e9997c8dcb613898eab4ae56e7cd1b2d01d63b6aa2d9115340bb4371d28b9fd7ddee8e088a28e9e3c4d6ffc62723f3d6c71
         | 
    
        data/.ruby-gemset
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            persistent-cache-ram
         | 
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            ruby-2.0.0-p451
         | 
    
        data/.travis.yml
    ADDED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,5 +1,10 @@ | |
| 1 1 | 
             
            # Persistent::Cache
         | 
| 2 2 |  | 
| 3 | 
            +
            [](https://badge.fury.io/rb/persistent-cache-ram)
         | 
| 4 | 
            +
            [](https://travis-ci.org/evangraan/persistent-cache-ram)
         | 
| 5 | 
            +
            [](https://coveralls.io/github/evangraan/persistent-cache-ram?branch=master)
         | 
| 6 | 
            +
            [](https://www.codacy.com/app/ernst-van-graan/persistent-cache-ram?utm_source=github.com&utm_medium=referral&utm_content=evangraan/persistent-cache-ram&utm_campaign=Badge_Grade)
         | 
| 7 | 
            +
             | 
| 3 8 | 
             
            Persistent cache behaves like a hash, with a pluggable back-end. This gem only implements STORAGE_RAM, and in doing so has no dependencies such as sqlite, etc. Please see the persistent-cache gem for support for more back-ends and a comprehensive README.
         | 
| 4 9 |  | 
| 5 10 | 
             
            ## Installation
         | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/lib/persistent-cache.rb
    CHANGED
    
    | @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            require 'time'
         | 
| 1 2 | 
             
            require "persistent-cache/version"
         | 
| 2 3 | 
             
            require "persistent-cache/storage/storage_ram"
         | 
| 3 4 |  | 
| @@ -43,7 +44,7 @@ module Persistent | |
| 43 44 | 
             
                  lookup_key(key)
         | 
| 44 45 | 
             
                end
         | 
| 45 46 |  | 
| 46 | 
            -
                def each(& | 
| 47 | 
            +
                def each(&_block)
         | 
| 47 48 | 
             
                  keys.each do |key|
         | 
| 48 49 | 
             
                    yield key, lookup_key(key)
         | 
| 49 50 | 
             
                  end
         | 
| @@ -112,7 +113,7 @@ module Persistent | |
| 112 113 |  | 
| 113 114 | 
             
                def delete_entry(key)
         | 
| 114 115 | 
             
                  k = encode_if_requested(key)
         | 
| 115 | 
            -
                  @storage.delete_entry( | 
| 116 | 
            +
                  @storage.delete_entry(k)
         | 
| 116 117 | 
             
                end
         | 
| 117 118 |  | 
| 118 119 | 
             
                def nil_result?(result)
         | 
| @@ -11,39 +11,39 @@ module Persistent | |
| 11 11 | 
             
                def save_key_value_pair(serialized_key, serialized_value, timestamp = nil)
         | 
| 12 12 | 
             
                  delete_entry(serialized_key)
         | 
| 13 13 | 
             
                  time_entry = timestamp.nil? ? Time.now.to_s : timestamp.to_s
         | 
| 14 | 
            -
                  EH | 
| 14 | 
            +
                  EH.retry!(:args => [serialized_key, serialized_value, time_entry]) do
         | 
| 15 15 | 
             
                    @storage[serialized_key] = {:value => serialized_value, :timestamp => time_entry}
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 | 
             
                end
         | 
| 18 18 |  | 
| 19 19 | 
             
                def lookup_key(serialized_key)
         | 
| 20 | 
            -
                  EH | 
| 20 | 
            +
                  EH.retry!(:args => [serialized_key]) do
         | 
| 21 21 | 
             
                    return [] if @storage[serialized_key].nil?
         | 
| 22 22 | 
             
                    [@storage[serialized_key][:value], @storage[serialized_key][:timestamp]]
         | 
| 23 23 | 
             
                  end
         | 
| 24 24 | 
             
                end
         | 
| 25 25 |  | 
| 26 26 | 
             
                def delete_entry(serialized_key)
         | 
| 27 | 
            -
                  EH | 
| 27 | 
            +
                  EH.retry!(:args => [serialized_key]) do
         | 
| 28 28 | 
             
                    @storage.delete(serialized_key)
         | 
| 29 29 | 
             
                  end
         | 
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
| 32 32 | 
             
                def size
         | 
| 33 | 
            -
                  EH | 
| 33 | 
            +
                  EH.retry!(:args => []) do
         | 
| 34 34 | 
             
                    @storage.size
         | 
| 35 35 | 
             
                  end
         | 
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 38 | 
             
                def keys
         | 
| 39 | 
            -
                  EH | 
| 39 | 
            +
                  EH.retry!(:args => []) do
         | 
| 40 40 | 
             
                    return [] if @storage.keys == []
         | 
| 41 41 | 
             
                    [@storage.keys]
         | 
| 42 42 | 
             
                  end
         | 
| 43 43 | 
             
                end
         | 
| 44 44 |  | 
| 45 45 | 
             
                def clear
         | 
| 46 | 
            -
                  EH | 
| 46 | 
            +
                  EH.retry!(:args => []) do
         | 
| 47 47 | 
             
                    @storage.clear
         | 
| 48 48 | 
             
                  end
         | 
| 49 49 | 
             
                end
         | 
| @@ -14,9 +14,10 @@ Gem::Specification.new do |gem| | |
| 14 14 | 
             
              gem.name          = "persistent-cache-ram"
         | 
| 15 15 | 
             
              gem.require_paths = ["lib"]
         | 
| 16 16 | 
             
              gem.version       = Persistent::Cache::VERSION
         | 
| 17 | 
            -
              gem.add_development_dependency  | 
| 18 | 
            -
              gem.add_development_dependency  | 
| 19 | 
            -
              gem.add_development_dependency  | 
| 20 | 
            -
             | 
| 17 | 
            +
              gem.add_development_dependency "bundler", "~> 1.3"
         | 
| 18 | 
            +
              gem.add_development_dependency "rake"
         | 
| 19 | 
            +
              gem.add_development_dependency "rspec"
         | 
| 20 | 
            +
              gem.add_development_dependency 'coveralls'
         | 
| 21 | 
            +
              gem.add_development_dependency 'byebug'
         | 
| 21 22 | 
             
              gem.add_dependency 'eh'
         | 
| 22 23 | 
             
            end
         | 
| @@ -158,12 +158,12 @@ describe Persistent::Cache do | |
| 158 158 | 
             
                end
         | 
| 159 159 |  | 
| 160 160 | 
             
                it "should be able to handle multiple accesses to the same db" do
         | 
| 161 | 
            -
                  #pending "find a better way to test this, currently you need to spawn multiple rspecs running this test to hit the error if the busy_timeout is not specified"
         | 
| 161 | 
            +
                  # pending "find a better way to test this, currently you need to spawn multiple rspecs running this test to hit the error if the busy_timeout is not specified"
         | 
| 162 162 | 
             
                  pcache = Persistent::Cache.new("multidb") 
         | 
| 163 163 | 
             
                  pcache["multi_test"] = 0
         | 
| 164 164 |  | 
| 165 165 | 
             
                  threads = []
         | 
| 166 | 
            -
                  100.times do | 
| 166 | 
            +
                  100.times do
         | 
| 167 167 | 
             
                    threads << Thread.new do
         | 
| 168 168 | 
             
                      Thread.current['pcache'] = Persistent::Cache.new("multidb") 
         | 
| 169 169 | 
             
                      if (!Thread.current['pcache'].nil? && !Thread.current['pcache']["multi_test"].nil?)
         | 
| @@ -209,6 +209,7 @@ describe Persistent::Cache do | |
| 209 209 | 
             
                def setup_cache(encoding = nil)
         | 
| 210 210 | 
             
                  FileUtils.rm_f(@db_name)
         | 
| 211 211 | 
             
                  @pcache = Persistent::Cache.new(@db_name, 1)
         | 
| 212 | 
            +
                  @pcache.encoding = encoding if encoding
         | 
| 212 213 | 
             
                end
         | 
| 213 214 | 
             
              end
         | 
| 214 215 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,9 +1,10 @@ | |
| 1 | 
            +
            require 'coveralls'
         | 
| 2 | 
            +
            Coveralls.wear!
         | 
| 3 | 
            +
             | 
| 1 4 | 
             
            require 'rspec'
         | 
| 2 5 | 
             
            require 'rspec/mocks'
         | 
| 3 6 | 
             
            require 'tempfile'
         | 
| 4 | 
            -
            require ' | 
| 5 | 
            -
            require 'simplecov-rcov'
         | 
| 6 | 
            -
            #require 'debugger'
         | 
| 7 | 
            +
            # require 'debugger'
         | 
| 7 8 |  | 
| 8 9 | 
             
            # This file was generated by the `rspec --init` command. Conventionally, all
         | 
| 9 10 | 
             
            # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
         | 
| @@ -17,7 +18,7 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'persistent-cache')) | |
| 17 18 | 
             
            RSpec.configure do |config|
         | 
| 18 19 | 
             
              config.run_all_when_everything_filtered = true
         | 
| 19 20 | 
             
              config.filter_run :focus
         | 
| 20 | 
            -
              #config.expect_with(:rspec) { |c| c.syntax = :should }
         | 
| 21 | 
            +
              # config.expect_with(:rspec) { |c| c.syntax = :should }
         | 
| 21 22 |  | 
| 22 23 | 
             
              # Run specs in random order to surface order dependencies. If you find an
         | 
| 23 24 | 
             
              # order dependency and want to debug it, you can fix the order by providing
         | 
| @@ -26,10 +27,10 @@ RSpec.configure do |config| | |
| 26 27 | 
             
              config.order = 'random'
         | 
| 27 28 | 
             
            end
         | 
| 28 29 |  | 
| 29 | 
            -
            SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
         | 
| 30 | 
            -
            SimpleCov.start do
         | 
| 31 | 
            -
             | 
| 32 | 
            -
            end
         | 
| 30 | 
            +
            # SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
         | 
| 31 | 
            +
            # SimpleCov.start do
         | 
| 32 | 
            +
            #   add_filter "/spec/"
         | 
| 33 | 
            +
            # end
         | 
| 33 34 |  | 
| 34 35 | 
             
            def get_database_name
         | 
| 35 36 | 
             
              path = Tempfile.new("persistent-cache-spec-testdb").path
         | 
    
        metadata
    CHANGED
    
    | @@ -1,69 +1,97 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: persistent-cache-ram
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ernst van Graan
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-07-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: bundler
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ~>
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '1.3'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ~>
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '1.3'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rake
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - '>='
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - '>='
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 13 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 42 | 
             
              name: rspec
         | 
| 15 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 44 | 
             
                requirements:
         | 
| 17 | 
            -
                - - ' | 
| 45 | 
            +
                - - '>='
         | 
| 18 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 47 | 
            +
                    version: '0'
         | 
| 20 48 | 
             
              type: :development
         | 
| 21 49 | 
             
              prerelease: false
         | 
| 22 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 51 | 
             
                requirements:
         | 
| 24 | 
            -
                - - ' | 
| 52 | 
            +
                - - '>='
         | 
| 25 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 54 | 
            +
                    version: '0'
         | 
| 27 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name:  | 
| 56 | 
            +
              name: coveralls
         | 
| 29 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 58 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 59 | 
            +
                - - '>='
         | 
| 32 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 61 | 
             
                    version: '0'
         | 
| 34 62 | 
             
              type: :development
         | 
| 35 63 | 
             
              prerelease: false
         | 
| 36 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 65 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 66 | 
            +
                - - '>='
         | 
| 39 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 68 | 
             
                    version: '0'
         | 
| 41 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 70 | 
            +
              name: byebug
         | 
| 43 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 72 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 73 | 
            +
                - - '>='
         | 
| 46 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 75 | 
             
                    version: '0'
         | 
| 48 76 | 
             
              type: :development
         | 
| 49 77 | 
             
              prerelease: false
         | 
| 50 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 79 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 80 | 
            +
                - - '>='
         | 
| 53 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 82 | 
             
                    version: '0'
         | 
| 55 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 84 | 
             
              name: eh
         | 
| 57 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 86 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 87 | 
            +
                - - '>='
         | 
| 60 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 89 | 
             
                    version: '0'
         | 
| 62 90 | 
             
              type: :runtime
         | 
| 63 91 | 
             
              prerelease: false
         | 
| 64 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 93 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 94 | 
            +
                - - '>='
         | 
| 67 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 96 | 
             
                    version: '0'
         | 
| 69 97 | 
             
            description: Persistent Cache limited to STORAGE_RAM
         | 
| @@ -73,7 +101,10 @@ executables: [] | |
| 73 101 | 
             
            extensions: []
         | 
| 74 102 | 
             
            extra_rdoc_files: []
         | 
| 75 103 | 
             
            files:
         | 
| 76 | 
            -
            -  | 
| 104 | 
            +
            - .gitignore
         | 
| 105 | 
            +
            - .ruby-gemset
         | 
| 106 | 
            +
            - .ruby-version
         | 
| 107 | 
            +
            - .travis.yml
         | 
| 77 108 | 
             
            - Gemfile
         | 
| 78 109 | 
             
            - LICENSE
         | 
| 79 110 | 
             
            - README.md
         | 
| @@ -94,17 +125,17 @@ require_paths: | |
| 94 125 | 
             
            - lib
         | 
| 95 126 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 96 127 | 
             
              requirements:
         | 
| 97 | 
            -
              - -  | 
| 128 | 
            +
              - - '>='
         | 
| 98 129 | 
             
                - !ruby/object:Gem::Version
         | 
| 99 130 | 
             
                  version: '0'
         | 
| 100 131 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 101 132 | 
             
              requirements:
         | 
| 102 | 
            -
              - -  | 
| 133 | 
            +
              - - '>='
         | 
| 103 134 | 
             
                - !ruby/object:Gem::Version
         | 
| 104 135 | 
             
                  version: '0'
         | 
| 105 136 | 
             
            requirements: []
         | 
| 106 137 | 
             
            rubyforge_project: 
         | 
| 107 | 
            -
            rubygems_version: 2. | 
| 138 | 
            +
            rubygems_version: 2.2.2
         | 
| 108 139 | 
             
            signing_key: 
         | 
| 109 140 | 
             
            specification_version: 4
         | 
| 110 141 | 
             
            summary: Persistent Cache limited to STORAGE_RAM
         | 
| @@ -112,4 +143,3 @@ test_files: | |
| 112 143 | 
             
            - spec/persistent-cache_spec.rb
         | 
| 113 144 | 
             
            - spec/spec_helper.rb
         | 
| 114 145 | 
             
            - spec/storage/storage_ram_spec.rb
         | 
| 115 | 
            -
            has_rdoc: 
         |