layercake 0.1.2 → 0.2.0
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/VERSION +1 -1
- data/layercake.gemspec +2 -2
- data/lib/layercake/store.rb +17 -4
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/layercake.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{layercake}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Peter Haza"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-11}
|
13
13
|
s.description = %q{LayerCake is a simple gem that allows you to specify more than one cache store in rails.
|
14
14
|
It is built on the idea that memory store is the most efficient store with no network or file overhead, but serves multi-process or multi-server architectures, hence a fallback like filestore or memcached store is necessary.}
|
15
15
|
s.email = %q{peter.haza@gmail.com}
|
data/lib/layercake/store.rb
CHANGED
@@ -40,7 +40,8 @@ module Layercake
|
|
40
40
|
missed = []
|
41
41
|
|
42
42
|
@stores.each do |store|
|
43
|
-
|
43
|
+
method = choose_method(store, :read_entry, :read)
|
44
|
+
value = store.send(method, key, options)
|
44
45
|
unless value.nil?
|
45
46
|
# Rails.logger.debug "Read from: #{store.class}"
|
46
47
|
break
|
@@ -51,7 +52,8 @@ module Layercake
|
|
51
52
|
|
52
53
|
if value
|
53
54
|
missed.each do |store|
|
54
|
-
store
|
55
|
+
method = choose_method(store, :write_entry, :write)
|
56
|
+
store.send(method, key, value, options)
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
@@ -59,17 +61,28 @@ module Layercake
|
|
59
61
|
end
|
60
62
|
|
61
63
|
def write_entry(key, entry, options)
|
62
|
-
@stores.each
|
64
|
+
@stores.each do |store|
|
65
|
+
method = choose_method(store, :write_entry, :write)
|
66
|
+
store.send(method, key, entry, options)
|
67
|
+
end
|
63
68
|
true
|
64
69
|
end
|
65
70
|
|
66
71
|
def delete_entry(key, options)
|
67
72
|
@stores.map do |store|
|
68
|
-
store
|
73
|
+
method = choose_method(store, :delete_entry, :delete)
|
74
|
+
store.send(method, key, options)
|
69
75
|
end.include? true
|
70
76
|
end
|
71
77
|
|
72
78
|
private
|
79
|
+
|
80
|
+
def choose_method(store, method1, method2)
|
81
|
+
return method1 if store.respond_to? method1.to_sym
|
82
|
+
return method2 if store.respond_to? method2.to_sym
|
83
|
+
nil
|
84
|
+
end
|
85
|
+
|
73
86
|
def initialize_store(arg)
|
74
87
|
parameters = arg
|
75
88
|
*parameters = *[arg.keys.first, arg.values].flatten if arg.is_a?(Hash)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: layercake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
- 1
|
9
8
|
- 2
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Peter Haza
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-11 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|