prefixed_cache_store 0.1.1 → 0.2.1
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/Gemfile +1 -1
- data/lib/prefixed_cache_store.rb +9 -1
- data/prefixed_cache_store.gemspec +6 -6
- data/spec/prefixed_cache_store_spec.rb +24 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 921749f49838a742e100da56d3db616b8d3688fd
|
4
|
+
data.tar.gz: d1c158cd682accd7d97c0efef882e86f97d6677f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30ea1dd82faae352b59baa623ba331dc88c9cb53161c6761fee08db5e1e3e03a1796901720d622113dbee64dd08b8781ac1ae5ec1f43d2502bb4fb199cf215a4
|
7
|
+
data.tar.gz: 45f86b016de49a758f391732cd8bdac77ceca80dcfb596267dcbf8a7b7b139590a8012bec04d01fe67c1a8481dd11153fcb3cc1f752f5618a5d6bfa701ab4295
|
data/Gemfile
CHANGED
@@ -6,7 +6,7 @@ source "http://rubygems.org"
|
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
|
-
gem "activesupport", "~>
|
9
|
+
gem "activesupport", "~> 4"
|
10
10
|
gem 'rspec', '~> 3.1'
|
11
11
|
gem "bundler", "~> 1.0"
|
12
12
|
gem "jeweler", "~> 2.0.1"
|
data/lib/prefixed_cache_store.rb
CHANGED
@@ -5,7 +5,7 @@ require 'forwardable'
|
|
5
5
|
# for the namespace and the version number that can be ratched up to "unlink" all the related keys.
|
6
6
|
# It assumes that the keys are being evicted automatically if they do not get used often.
|
7
7
|
class PrefixedCacheStore
|
8
|
-
VERSION = '0.
|
8
|
+
VERSION = '0.2.1'
|
9
9
|
|
10
10
|
RETAIN_PREFIX_FOR_SECONDS = 10
|
11
11
|
|
@@ -31,6 +31,14 @@ class PrefixedCacheStore
|
|
31
31
|
@store.fetch(prefix_key(name), options)
|
32
32
|
end
|
33
33
|
end
|
34
|
+
|
35
|
+
def fetch_multi(*names)
|
36
|
+
options = names.extract_options!
|
37
|
+
prefixed_keys = names.map{|e| prefix_key(e) }
|
38
|
+
@store.fetch_multi(*prefixed_keys, options) do | prefixed_key |
|
39
|
+
yield(unprefix_key(prefixed_key))
|
40
|
+
end
|
41
|
+
end
|
34
42
|
|
35
43
|
def read(name, options=nil)
|
36
44
|
@store.read(prefix_key(name), options)
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: prefixed_cache_store 0.
|
5
|
+
# stub: prefixed_cache_store 0.2.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "prefixed_cache_store"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.2.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Julik Tarkhanov"]
|
14
|
-
s.date = "2014-10-
|
14
|
+
s.date = "2014-10-30"
|
15
15
|
s.description = "Allows you to expire parts of your cache separately"
|
16
16
|
s.email = "me@julik.nl"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -39,20 +39,20 @@ Gem::Specification.new do |s|
|
|
39
39
|
s.specification_version = 4
|
40
40
|
|
41
41
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
-
s.add_development_dependency(%q<activesupport>, ["~>
|
42
|
+
s.add_development_dependency(%q<activesupport>, ["~> 4"])
|
43
43
|
s.add_development_dependency(%q<rspec>, ["~> 3.1"])
|
44
44
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
45
45
|
s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
|
46
46
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
47
47
|
else
|
48
|
-
s.add_dependency(%q<activesupport>, ["~>
|
48
|
+
s.add_dependency(%q<activesupport>, ["~> 4"])
|
49
49
|
s.add_dependency(%q<rspec>, ["~> 3.1"])
|
50
50
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
51
51
|
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
52
52
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
53
53
|
end
|
54
54
|
else
|
55
|
-
s.add_dependency(%q<activesupport>, ["~>
|
55
|
+
s.add_dependency(%q<activesupport>, ["~> 4"])
|
56
56
|
s.add_dependency(%q<rspec>, ["~> 3.1"])
|
57
57
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
58
58
|
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
@@ -95,6 +95,30 @@ describe PrefixedCacheStore do
|
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
+
describe 'fetch_multi' do
|
99
|
+
it 'performs a multi-fetch calling the backing store' do
|
100
|
+
some_store = ActiveSupport::Cache::MemoryStore.new
|
101
|
+
|
102
|
+
subject = described_class.new(some_store, 'pre')
|
103
|
+
expect(subject.current_version_number).to eq(0)
|
104
|
+
|
105
|
+
results = subject.fetch_multi('record1', 'record2') do | key_to_fetch |
|
106
|
+
"This is #{key_to_fetch}"
|
107
|
+
end
|
108
|
+
|
109
|
+
expect(results).to eq(["This is record1", "This is record2"])
|
110
|
+
|
111
|
+
results_from_cache = subject.fetch_multi('record1', 'record2') do | key_to_fetch |
|
112
|
+
raise "Should not be called"
|
113
|
+
end
|
114
|
+
expect(results_from_cache).to eq(["This is record1", "This is record2"])
|
115
|
+
|
116
|
+
expect(some_store.read("pre-version")).to eq(0)
|
117
|
+
expect(some_store.read("pre-0-record1")).to eq('This is record1')
|
118
|
+
expect(some_store.read("pre-0-record2")).to eq('This is record2')
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
98
122
|
describe 'clear' do
|
99
123
|
it 'bumps the version' do
|
100
124
|
some_store = ActiveSupport::Cache::MemoryStore.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prefixed_cache_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '4'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|