cachetastic 1.6.0 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/classes/ActiveRecord/Base.html +17 -11
- data/doc/classes/Cachetastic/Cacheable.html +11 -16
- data/doc/classes/Cachetastic/Cacheable/ClassAndInstanceMethods.html +39 -42
- data/doc/classes/Cachetastic/Cacheable/ClassOnlyMethods.html +13 -16
- data/doc/classes/Cachetastic/Caches/Base.html +1 -1
- data/doc/created.rid +1 -1
- data/doc/files/lib/caches/cachetastic_caches_base_rb.html +1 -1
- data/doc/files/lib/cachetastic_cacheable_rb.html +1 -1
- data/doc/files/lib/cachetastic_rb.html +2 -1
- data/doc/files/lib/rails_extensions/cachetastic_active_record_base_rb.html +1 -1
- data/lib/caches/cachetastic_caches_base.rb +1 -1
- data/lib/cachetastic.rb +2 -1
- data/lib/cachetastic_cacheable.rb +12 -18
- data/lib/rails_extensions/cachetastic_active_record_base.rb +4 -0
- data/test/cacheable_test.rb +4 -0
- metadata +7 -7
@@ -128,21 +128,27 @@
|
|
128
128
|
</div>
|
129
129
|
|
130
130
|
<div class="method-description">
|
131
|
+
<p>
|
132
|
+
Returns an object from the cache for a given key. If the object returned is
|
133
|
+
nil and the self_populate parameter is true then the key will be used to
|
134
|
+
try and find the object in the database, set the object into the cache, and
|
135
|
+
then return the object.
|
136
|
+
</p>
|
131
137
|
<p><a class="source-toggle" href="#"
|
132
138
|
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
133
139
|
<div class="method-source-code" id="M000003-source">
|
134
140
|
<pre>
|
135
|
-
<span class="ruby-comment cmt"># File lib/rails_extensions/cachetastic_active_record_base.rb, line
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
141
|
+
<span class="ruby-comment cmt"># File lib/rails_extensions/cachetastic_active_record_base.rb, line 13</span>
|
142
|
+
13: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get_from_cache</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">self_populate</span> = <span class="ruby-keyword kw">false</span>)
|
143
|
+
14: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>)
|
144
|
+
15: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">self_populate</span>
|
145
|
+
16: <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">constantize</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">key</span>)
|
146
|
+
17: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">nil?</span>
|
147
|
+
18: <span class="ruby-identifier">res</span>.<span class="ruby-identifier">cache_self</span>
|
148
|
+
19: <span class="ruby-keyword kw">end</span>
|
149
|
+
20: <span class="ruby-keyword kw">end</span>
|
150
|
+
21: <span class="ruby-identifier">res</span>
|
151
|
+
22: <span class="ruby-keyword kw">end</span>
|
146
152
|
</pre>
|
147
153
|
</div>
|
148
154
|
</div>
|
@@ -79,12 +79,7 @@
|
|
79
79
|
<div id="description">
|
80
80
|
<p>
|
81
81
|
Include this module into an <a href="../Object.html">Object</a> to achieve
|
82
|
-
simplistic <a href="../Object.html">Object</a> level caching.
|
83
|
-
including this module you <b>MUST</b> create an instance level method
|
84
|
-
called cachetastic_key and have it return a valid key! If you return nil
|
85
|
-
from the cachetastic_key method you will not be able to use the <a
|
86
|
-
href="Cacheable.html#M000047">cache_self</a> and <a
|
87
|
-
href="Cacheable.html#M000048">uncache_self</a> methods.
|
82
|
+
simplistic <a href="../Object.html">Object</a> level caching.
|
88
83
|
</p>
|
89
84
|
<p>
|
90
85
|
Example:
|
@@ -162,7 +157,7 @@ Unless the object‘s cachetastic_key method returns nil this method
|
|
162
157
|
will store the object in the cache using the object‘s cachetastic_key
|
163
158
|
as the key. You <b>MUST</b> create an instance level method called
|
164
159
|
cachetastic_key and have it return a valid key! If you return nil from the
|
165
|
-
cachetastic_key method you will not be able to use the <a
|
160
|
+
cachetastic_key method or you will not be able to use the <a
|
166
161
|
href="Cacheable.html#M000047">cache_self</a> and <a
|
167
162
|
href="Cacheable.html#M000048">uncache_self</a> methods.
|
168
163
|
</p>
|
@@ -188,10 +183,10 @@ Example:
|
|
188
183
|
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
189
184
|
<div class="method-source-code" id="M000047-source">
|
190
185
|
<pre>
|
191
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
192
|
-
|
193
|
-
|
194
|
-
|
186
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 140</span>
|
187
|
+
140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cache_self</span>
|
188
|
+
141: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cachetastic_key</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cachetastic_key</span>.<span class="ruby-identifier">nil?</span>
|
189
|
+
142: <span class="ruby-keyword kw">end</span>
|
195
190
|
</pre>
|
196
191
|
</div>
|
197
192
|
</div>
|
@@ -212,7 +207,7 @@ Unless the object‘s cachetastic_key method returns nil this method
|
|
212
207
|
will delete the object in the cache using the object‘s
|
213
208
|
cachetastic_key as the key. You <b>MUST</b> create an instance level method
|
214
209
|
called cachetastic_key and have it return a valid key! If you return nil
|
215
|
-
from the cachetastic_key method you will not be able to use the <a
|
210
|
+
from the cachetastic_key method or you will not be able to use the <a
|
216
211
|
href="Cacheable.html#M000047">cache_self</a> and <a
|
217
212
|
href="Cacheable.html#M000048">uncache_self</a> methods.
|
218
213
|
</p>
|
@@ -240,10 +235,10 @@ Example:
|
|
240
235
|
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
241
236
|
<div class="method-source-code" id="M000048-source">
|
242
237
|
<pre>
|
243
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
244
|
-
|
245
|
-
|
246
|
-
|
238
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 166</span>
|
239
|
+
166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uncache_self</span>
|
240
|
+
167: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cachetastic_key</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cachetastic_key</span>.<span class="ruby-identifier">nil?</span>
|
241
|
+
168: <span class="ruby-keyword kw">end</span>
|
247
242
|
</pre>
|
248
243
|
</div>
|
249
244
|
</div>
|
@@ -139,21 +139,21 @@ Example:
|
|
139
139
|
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
140
140
|
<div class="method-source-code" id="M000049-source">
|
141
141
|
<pre>
|
142
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
142
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 39</span>
|
143
|
+
39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cache_class</span>
|
144
|
+
40: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
|
145
|
+
41: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"Class"</span>
|
146
|
+
42: <span class="ruby-comment cmt"># puts "n: #{n}"</span>
|
147
|
+
43: <span class="ruby-identifier">c_name</span> = <span class="ruby-node">"Cachetastic::Cacheable::#{n}Cache"</span>
|
148
|
+
44: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Cachetastic</span><span class="ruby-operator">::</span><span class="ruby-constant">Cacheable</span>.<span class="ruby-identifier">const_defined?</span>(<span class="ruby-node">"#{n}Cache"</span>)
|
149
|
+
45: <span class="ruby-comment cmt"># puts "we need to create a cache for: #{c_name}"</span>
|
150
|
+
46: <span class="ruby-identifier">eval</span> <span class="ruby-node">%{
|
151
|
+
47: class #{c_name} < Cachetastic::Caches::Base
|
152
|
+
48: end
|
153
|
+
49: }</span>
|
154
|
+
50: <span class="ruby-keyword kw">end</span>
|
155
|
+
51: <span class="ruby-identifier">c_name</span>.<span class="ruby-identifier">constantize</span>
|
156
|
+
52: <span class="ruby-keyword kw">end</span>
|
157
157
|
</pre>
|
158
158
|
</div>
|
159
159
|
</div>
|
@@ -192,34 +192,31 @@ Example:
|
|
192
192
|
end
|
193
193
|
end
|
194
194
|
end
|
195
|
+
|
196
|
+
Person.new.always_the_same(1,2) # => 3
|
197
|
+
Person.new.always_the_same(2,2) # => 3
|
198
|
+
Person.new.always_the_same(3,3) # => 3
|
199
|
+
Person.cacher("always_the_same") # => 3
|
200
|
+
Person.get_from_cache("always_the_same") # => 3
|
201
|
+
Cachetastic::Cacheable::PersonCache.get("always_the_same") # => 3
|
202
|
+
|
203
|
+
Person.cacher("say_hi") {"Hi There"} # => "Hi There"
|
204
|
+
Person.get_from_cache("say_hi") # => "Hi There"
|
205
|
+
Cachetastic::Cacheable::PersonCache.get("say_hi") # => "Hi There"
|
195
206
|
</pre>
|
196
|
-
<p>
|
197
|
-
Person.new.always_the_same(1,2) # => 3 Person.new.always_the_same(2,2) #
|
198
|
-
=> 3 Person.new.always_the_same(3,3) # => 3
|
199
|
-
Person.cacher("always_the_same") # => 3
|
200
|
-
Person.get_from_cache("always_the_same") # => 3
|
201
|
-
Cachetastic::Cacheable::PersonCache.get("always_the_same") #
|
202
|
-
=> 3
|
203
|
-
</p>
|
204
|
-
<p>
|
205
|
-
Person.cacher("say_hi") {"Hi There"} # => "Hi
|
206
|
-
There" Person.get_from_cache("say_hi") # => "Hi
|
207
|
-
There" Cachetastic::Cacheable::PersonCache.get("say_hi") #
|
208
|
-
=> "Hi There"
|
209
|
-
</p>
|
210
207
|
<p><a class="source-toggle" href="#"
|
211
208
|
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
212
209
|
<div class="method-source-code" id="M000050-source">
|
213
210
|
<pre>
|
214
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
211
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 84</span>
|
212
|
+
84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cacher</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">expiry</span> = <span class="ruby-value">0</span>)
|
213
|
+
85: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">do</span>
|
214
|
+
86: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
215
|
+
87: <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">yield</span>
|
216
|
+
88: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">res</span>, <span class="ruby-identifier">expiry</span>)
|
217
|
+
89: <span class="ruby-keyword kw">end</span>
|
218
|
+
90: <span class="ruby-keyword kw">end</span>
|
219
|
+
91: <span class="ruby-keyword kw">end</span>
|
223
220
|
</pre>
|
224
221
|
</div>
|
225
222
|
</div>
|
@@ -263,10 +260,10 @@ Example:
|
|
263
260
|
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
264
261
|
<div class="method-source-code" id="M000051-source">
|
265
262
|
<pre>
|
266
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
267
|
-
|
268
|
-
|
269
|
-
|
263
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 112</span>
|
264
|
+
112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expire_all</span>
|
265
|
+
113: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">expire_all</span>
|
266
|
+
114: <span class="ruby-keyword kw">end</span>
|
270
267
|
</pre>
|
271
268
|
</div>
|
272
269
|
</div>
|
@@ -121,10 +121,10 @@ Deletes an object from the cache for a given key.
|
|
121
121
|
onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
|
122
122
|
<div class="method-source-code" id="M000053-source">
|
123
123
|
<pre>
|
124
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
125
|
-
|
126
|
-
|
127
|
-
|
124
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 185</span>
|
125
|
+
185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_from_cache</span>(<span class="ruby-identifier">key</span>)
|
126
|
+
186: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>)
|
127
|
+
187: <span class="ruby-keyword kw">end</span>
|
128
128
|
</pre>
|
129
129
|
</div>
|
130
130
|
</div>
|
@@ -141,19 +141,16 @@ Deletes an object from the cache for a given key.
|
|
141
141
|
|
142
142
|
<div class="method-description">
|
143
143
|
<p>
|
144
|
-
Returns an object from the cache for a given key.
|
145
|
-
nil and the self_populate parameter is true then the key will be used to
|
146
|
-
try and find the object in the database, set the object into the cache, and
|
147
|
-
then return the object.
|
144
|
+
Returns an object from the cache for a given key.
|
148
145
|
</p>
|
149
146
|
<p><a class="source-toggle" href="#"
|
150
147
|
onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
|
151
148
|
<div class="method-source-code" id="M000052-source">
|
152
149
|
<pre>
|
153
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
154
|
-
|
155
|
-
|
156
|
-
|
150
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 180</span>
|
151
|
+
180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_from_cache</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
152
|
+
181: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
153
|
+
182: <span class="ruby-keyword kw">end</span>
|
157
154
|
</pre>
|
158
155
|
</div>
|
159
156
|
</div>
|
@@ -176,10 +173,10 @@ Sets an object into the cache for a given key.
|
|
176
173
|
onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
|
177
174
|
<div class="method-source-code" id="M000054-source">
|
178
175
|
<pre>
|
179
|
-
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line
|
180
|
-
|
181
|
-
|
182
|
-
|
176
|
+
<span class="ruby-comment cmt"># File lib/cachetastic_cacheable.rb, line 190</span>
|
177
|
+
190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_into_cache</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">expiry</span> = <span class="ruby-value">0</span>)
|
178
|
+
191: <span class="ruby-identifier">cache_class</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">expiry</span>)
|
179
|
+
192: <span class="ruby-keyword kw">end</span>
|
183
180
|
</pre>
|
184
181
|
</div>
|
185
182
|
</div>
|
@@ -373,7 +373,7 @@ results of the block are not automatically cached.
|
|
373
373
|
<div class="method-source-code" id="M000057-source">
|
374
374
|
<pre>
|
375
375
|
<span class="ruby-comment cmt"># File lib/caches/cachetastic_caches_base.rb, line 58</span>
|
376
|
-
58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>)
|
376
|
+
58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
377
377
|
59: <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">nil</span>
|
378
378
|
60: <span class="ruby-identifier">do_with_logging</span>(<span class="ruby-identifier">:get</span>, <span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">do</span>
|
379
379
|
61: <span class="ruby-identifier">retryable</span>(<span class="ruby-identifier">:on</span> =<span class="ruby-operator">></span> <span class="ruby-constant">ArgumentError</span>) <span class="ruby-keyword kw">do</span>
|
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Wed, 04 Jun 2008 10:11:52 -0400
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>
|
59
|
+
<td>Wed Jun 04 10:11:36 -0400 2008</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -186,6 +186,7 @@ The server takes to command line parameters: -h <host> -p
|
|
186
186
|
zlib
|
187
187
|
pp
|
188
188
|
drb
|
189
|
+
mack_ruby_core_extensions
|
189
190
|
application_configuration
|
190
191
|
memcache
|
191
192
|
</div>
|
@@ -55,7 +55,7 @@ class Cachetastic::Caches::Base
|
|
55
55
|
# will be run. This can be used to JIT caches, just make
|
56
56
|
# sure in the block to call the set method because the
|
57
57
|
# results of the block are not automatically cached.
|
58
|
-
def get(key)
|
58
|
+
def get(key, &block)
|
59
59
|
res = nil
|
60
60
|
do_with_logging(:get, key) do
|
61
61
|
retryable(:on => ArgumentError) do
|
data/lib/cachetastic.rb
CHANGED
@@ -6,6 +6,7 @@ require 'yaml'
|
|
6
6
|
require 'zlib'
|
7
7
|
require 'pp'
|
8
8
|
require 'drb'
|
9
|
+
require 'mack_ruby_core_extensions'
|
9
10
|
require 'application_configuration'
|
10
11
|
begin
|
11
12
|
require 'memcache'
|
@@ -13,7 +14,7 @@ rescue Exception => e
|
|
13
14
|
# if you don't have memcache installed, don't
|
14
15
|
# blow up, print a message, and you can't use
|
15
16
|
# the memcache adapter.
|
16
|
-
puts
|
17
|
+
puts "Warning: You don't have the memcache gem installed which means you can't use the Cachetastic::Adapters::Memcache adapter."
|
17
18
|
end
|
18
19
|
|
19
20
|
|
@@ -1,8 +1,5 @@
|
|
1
1
|
module Cachetastic
|
2
2
|
# Include this module into an Object to achieve simplistic Object level caching.
|
3
|
-
# When including this module you *MUST* create an instance level method called cachetastic_key and
|
4
|
-
# have it return a valid key! If you return nil from the cachetastic_key method you will not be
|
5
|
-
# able to use the cache_self and uncache_self methods.
|
6
3
|
#
|
7
4
|
# Example:
|
8
5
|
# class Person
|
@@ -74,16 +71,16 @@ module Cachetastic
|
|
74
71
|
# end
|
75
72
|
# end
|
76
73
|
#
|
77
|
-
#
|
78
|
-
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
#
|
86
|
-
#
|
74
|
+
# Person.new.always_the_same(1,2) # => 3
|
75
|
+
# Person.new.always_the_same(2,2) # => 3
|
76
|
+
# Person.new.always_the_same(3,3) # => 3
|
77
|
+
# Person.cacher("always_the_same") # => 3
|
78
|
+
# Person.get_from_cache("always_the_same") # => 3
|
79
|
+
# Cachetastic::Cacheable::PersonCache.get("always_the_same") # => 3
|
80
|
+
#
|
81
|
+
# Person.cacher("say_hi") {"Hi There"} # => "Hi There"
|
82
|
+
# Person.get_from_cache("say_hi") # => "Hi There"
|
83
|
+
# Cachetastic::Cacheable::PersonCache.get("say_hi") # => "Hi There"
|
87
84
|
def cacher(key, expiry = 0)
|
88
85
|
cache_class.get(key) do
|
89
86
|
if block_given?
|
@@ -123,7 +120,7 @@ module Cachetastic
|
|
123
120
|
# Unless the object's cachetastic_key method returns nil this method will store
|
124
121
|
# the object in the cache using the object's cachetastic_key as the key.
|
125
122
|
# You *MUST* create an instance level method called cachetastic_key and
|
126
|
-
# have it return a valid key! If you return nil from the cachetastic_key method you will not be
|
123
|
+
# have it return a valid key! If you return nil from the cachetastic_key method or you will not be
|
127
124
|
# able to use the cache_self and uncache_self methods.
|
128
125
|
#
|
129
126
|
# Example:
|
@@ -147,7 +144,7 @@ module Cachetastic
|
|
147
144
|
# Unless the object's cachetastic_key method returns nil this method will delete
|
148
145
|
# the object in the cache using the object's cachetastic_key as the key.
|
149
146
|
# You *MUST* create an instance level method called cachetastic_key and
|
150
|
-
# have it return a valid key! If you return nil from the cachetastic_key method you will not be
|
147
|
+
# have it return a valid key! If you return nil from the cachetastic_key method or you will not be
|
151
148
|
# able to use the cache_self and uncache_self methods.
|
152
149
|
#
|
153
150
|
# Example:
|
@@ -180,9 +177,6 @@ module Cachetastic
|
|
180
177
|
|
181
178
|
module ClassOnlyMethods
|
182
179
|
# Returns an object from the cache for a given key.
|
183
|
-
# If the object returned is nil and the self_populate parameter is true
|
184
|
-
# then the key will be used to try and find the object in the database,
|
185
|
-
# set the object into the cache, and then return the object.
|
186
180
|
def get_from_cache(key, &block)
|
187
181
|
cache_class.get(key, &block)
|
188
182
|
end
|
@@ -6,6 +6,10 @@ class ActiveRecord::Base
|
|
6
6
|
self.id
|
7
7
|
end
|
8
8
|
|
9
|
+
# Returns an object from the cache for a given key.
|
10
|
+
# If the object returned is nil and the self_populate parameter is true
|
11
|
+
# then the key will be used to try and find the object in the database,
|
12
|
+
# set the object into the cache, and then return the object.
|
9
13
|
def self.get_from_cache(key, self_populate = false)
|
10
14
|
res = cache_class.get(key)
|
11
15
|
if res.nil? && self_populate
|
data/test/cacheable_test.rb
CHANGED
@@ -67,6 +67,10 @@ class CacheableTest < Test::Unit::TestCase
|
|
67
67
|
def test_get_from_cache
|
68
68
|
assert_nil Person.get_from_cache("i should be nil")
|
69
69
|
assert_equal 86, Person.get_from_cache("maxwell smart") {86}
|
70
|
+
x = Person.get_from_cache("my name") do |key|
|
71
|
+
"Mark Bates"
|
72
|
+
end
|
73
|
+
assert_equal "Mark Bates", x
|
70
74
|
end
|
71
75
|
|
72
76
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cachetastic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- markbates
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-06-
|
12
|
+
date: 2008-06-04 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -36,8 +36,8 @@ executables: []
|
|
36
36
|
|
37
37
|
extensions: []
|
38
38
|
|
39
|
-
extra_rdoc_files:
|
40
|
-
|
39
|
+
extra_rdoc_files:
|
40
|
+
- README
|
41
41
|
files:
|
42
42
|
- lib/adapters/cachetastic_adapters_base.rb
|
43
43
|
- lib/adapters/cachetastic_adapters_drb.rb
|
@@ -108,7 +108,7 @@ files:
|
|
108
108
|
- doc/fr_method_index.html
|
109
109
|
- doc/index.html
|
110
110
|
- doc/rdoc-style.css
|
111
|
-
has_rdoc:
|
111
|
+
has_rdoc: true
|
112
112
|
homepage: http://www.mackframework.com
|
113
113
|
post_install_message:
|
114
114
|
rdoc_options: []
|
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
130
|
version:
|
131
131
|
requirements: []
|
132
132
|
|
133
|
-
rubyforge_project:
|
133
|
+
rubyforge_project: magrathea
|
134
134
|
rubygems_version: 1.1.1
|
135
135
|
signing_key:
|
136
136
|
specification_version: 2
|