simple_cacheable 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cacheable/version.rb +1 -1
- data/lib/cacheable.rb +10 -7
- metadata +2 -2
data/lib/cacheable/version.rb
CHANGED
data/lib/cacheable.rb
CHANGED
@@ -3,10 +3,13 @@ module Cacheable
|
|
3
3
|
base.class_eval do
|
4
4
|
class <<self
|
5
5
|
def model_cache(&block)
|
6
|
+
class_attribute :cache_key, :cached_indices, :cached_methods
|
6
7
|
instance_exec &block
|
7
8
|
end
|
8
9
|
|
9
10
|
def with_key
|
11
|
+
self.cache_key = true
|
12
|
+
|
10
13
|
class_eval <<-EOF
|
11
14
|
after_update :expire_key_cache
|
12
15
|
|
@@ -19,12 +22,12 @@ module Cacheable
|
|
19
22
|
end
|
20
23
|
|
21
24
|
def with_attribute(*attributes)
|
25
|
+
self.cached_indices = attributes.inject({}) { |indices, attribute| indices[attribute] = {} }
|
26
|
+
|
22
27
|
class_eval <<-EOF
|
23
28
|
after_update :expire_attribute_cache
|
24
29
|
EOF
|
25
30
|
|
26
|
-
class_attribute :cached_indices
|
27
|
-
self.cached_indices = attributes.inject({}) { |indices, attribute| indices[attribute] = {} }
|
28
31
|
attributes.each do |attribute|
|
29
32
|
class_eval <<-EOF
|
30
33
|
def self.find_cached_by_#{attribute}(value)
|
@@ -39,12 +42,12 @@ module Cacheable
|
|
39
42
|
end
|
40
43
|
|
41
44
|
def with_method(*methods)
|
45
|
+
self.cached_methods = methods
|
46
|
+
|
42
47
|
class_eval <<-EOF
|
43
48
|
after_update :expire_method_cache
|
44
49
|
EOF
|
45
50
|
|
46
|
-
class_attribute :cached_methods
|
47
|
-
self.cached_methods = methods
|
48
51
|
methods.each do |meth|
|
49
52
|
class_eval <<-EOF
|
50
53
|
def cached_#{meth}
|
@@ -104,9 +107,9 @@ module Cacheable
|
|
104
107
|
end
|
105
108
|
|
106
109
|
def expire_model_cache
|
107
|
-
expire_key_cache
|
108
|
-
expire_attribute_cache
|
109
|
-
expire_method_cache
|
110
|
+
expire_key_cache if self.class.cache_key
|
111
|
+
expire_attribute_cache if self.class.cached_indices.present?
|
112
|
+
expire_method_cache if self.class.cached_methods.present?
|
110
113
|
end
|
111
114
|
|
112
115
|
def expire_key_cache
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: simple_cacheable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.1.
|
5
|
+
version: 1.1.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Richard Huang
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-10-
|
13
|
+
date: 2011-10-09 00:00:00 +08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|