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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 666a5779f05420890e01fae317d1d9112313d64f
4
- data.tar.gz: 6d59f1ff6a0718eb973b10c4d0cef7b53b8d5a98
3
+ metadata.gz: 921749f49838a742e100da56d3db616b8d3688fd
4
+ data.tar.gz: d1c158cd682accd7d97c0efef882e86f97d6677f
5
5
  SHA512:
6
- metadata.gz: c637194e6cb2b226facac0d987fc6288cd6b72fa0e40cfebd3f0fd182bd54531bacb59375538e7adc3223d95b0aae0e85fbe81baa8c4bc1373d7c299d1d0cd87
7
- data.tar.gz: 819cfb4ed6aefab1a2a9899df8e012fe47868ddeac0ff91080639f10314d458a0d1a13bd1a84dd3896fea321420b9cc0844f2e068cc47a34145f74fa97d3bb10
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", "~> 3"
9
+ gem "activesupport", "~> 4"
10
10
  gem 'rspec', '~> 3.1'
11
11
  gem "bundler", "~> 1.0"
12
12
  gem "jeweler", "~> 2.0.1"
@@ -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.1.1'
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.1.1 ruby lib
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.1.1"
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-28"
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>, ["~> 3"])
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>, ["~> 3"])
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>, ["~> 3"])
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.1.1
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-28 00:00:00.000000000 Z
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: '3'
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: '3'
26
+ version: '4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement