cachetastic 2.1.4 → 3.0.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.
Files changed (90) hide show
  1. data/LICENSE +21 -0
  2. data/README +57 -43
  3. data/doc/classes/Cachetastic/Adapters.html +180 -0
  4. data/doc/classes/Cachetastic/Adapters/Base.html +206 -123
  5. data/doc/classes/Cachetastic/Adapters/File.html +17 -130
  6. data/doc/classes/Cachetastic/Adapters/LocalMemory.html +7 -228
  7. data/doc/classes/Cachetastic/Adapters/Memcached.html +193 -0
  8. data/doc/classes/Cachetastic/Cache.html +425 -0
  9. data/doc/classes/Cachetastic/Cacheable.html +26 -30
  10. data/doc/classes/Cachetastic/Cacheable/ClassAndInstanceMethods.html +66 -62
  11. data/doc/classes/Cachetastic/Cacheable/ClassOnlyMethods.html +30 -30
  12. data/doc/classes/Cachetastic/Logger.html +31 -33
  13. data/doc/created.rid +1 -1
  14. data/doc/files/{lib/cachetastic/adapters/html_file_rb.html → LICENSE.html} +29 -34
  15. data/doc/files/README.html +91 -57
  16. data/doc/files/lib/cachetastic/adapters/base_rb.html +1 -39
  17. data/doc/files/lib/cachetastic/adapters/file_rb.html +1 -21
  18. data/doc/files/lib/cachetastic/adapters/local_memory_rb.html +1 -9
  19. data/doc/files/lib/cachetastic/{ruby_extensions/kernel_rb.html → adapters/memcached_rb.html} +4 -4
  20. data/doc/files/lib/cachetastic/{ruby_extensions/string_rb.html → cache_rb.html} +5 -5
  21. data/doc/files/lib/cachetastic/cacheable_rb.html +1 -1
  22. data/doc/files/lib/cachetastic/{caches/base_rb.html → extensions/string_rb.html} +5 -5
  23. data/doc/files/lib/cachetastic/logger_rb.html +1 -7
  24. data/doc/files/lib/cachetastic/{adapters/store_object_rb.html → store_object_rb.html} +3 -3
  25. data/doc/files/lib/cachetastic_rb.html +4 -95
  26. data/doc/fr_class_index.html +3 -15
  27. data/doc/fr_file_index.html +5 -16
  28. data/doc/fr_method_index.html +26 -78
  29. data/lib/cachetastic.rb +16 -70
  30. data/lib/cachetastic/adapters/base.rb +178 -76
  31. data/lib/cachetastic/adapters/file.rb +63 -46
  32. data/lib/cachetastic/adapters/local_memory.rb +36 -67
  33. data/lib/cachetastic/adapters/memcached.rb +114 -0
  34. data/lib/cachetastic/cache.rb +165 -0
  35. data/lib/cachetastic/cacheable.rb +19 -15
  36. data/lib/cachetastic/extensions/string.rb +8 -0
  37. data/lib/cachetastic/logger.rb +41 -41
  38. data/lib/cachetastic/store_object.rb +22 -0
  39. metadata +43 -64
  40. data/bin/cachetastic_drb_server +0 -115
  41. data/doc/classes/ActiveRecord/Base.html +0 -194
  42. data/doc/classes/CGI/Session/CachetasticStore.html +0 -124
  43. data/doc/classes/Cachetastic/Adapters/Drb.html +0 -332
  44. data/doc/classes/Cachetastic/Adapters/FileBase.html +0 -309
  45. data/doc/classes/Cachetastic/Adapters/HtmlFile.html +0 -224
  46. data/doc/classes/Cachetastic/Adapters/Memcache.html +0 -498
  47. data/doc/classes/Cachetastic/Caches/Base.html +0 -643
  48. data/doc/classes/Cachetastic/Caches/Base/RegisteredCaches.html +0 -179
  49. data/doc/classes/Cachetastic/Caches/MackSessionCache.html +0 -119
  50. data/doc/classes/Cachetastic/Caches/PageCache.html +0 -121
  51. data/doc/classes/Cachetastic/Caches/RailsSessionCache.html +0 -154
  52. data/doc/classes/Cachetastic/Connection.html +0 -212
  53. data/doc/classes/Cachetastic/Errors/UnsupportedAdapter.html +0 -146
  54. data/doc/classes/Object.html +0 -222
  55. data/doc/classes/String.html +0 -172
  56. data/doc/files/lib/cachetastic/adapters/drb_rb.html +0 -115
  57. data/doc/files/lib/cachetastic/adapters/file_base_rb.html +0 -109
  58. data/doc/files/lib/cachetastic/adapters/memcache_rb.html +0 -127
  59. data/doc/files/lib/cachetastic/caches/mack_session_cache_rb.html +0 -107
  60. data/doc/files/lib/cachetastic/caches/page_cache_rb.html +0 -109
  61. data/doc/files/lib/cachetastic/caches/rails_session_cache_rb.html +0 -107
  62. data/doc/files/lib/cachetastic/connection_rb.html +0 -107
  63. data/doc/files/lib/cachetastic/errors/unsupported_adapter_rb.html +0 -101
  64. data/doc/files/lib/cachetastic/rails_extensions/active_record_base_rb.html +0 -101
  65. data/doc/files/lib/cachetastic/rails_extensions/cgi_session_store_rb.html +0 -109
  66. data/doc/files/lib/cachetastic/ruby_extensions/object_rb.html +0 -101
  67. data/lib/cachetastic/adapters/drb.rb +0 -51
  68. data/lib/cachetastic/adapters/file_base.rb +0 -86
  69. data/lib/cachetastic/adapters/html_file.rb +0 -68
  70. data/lib/cachetastic/adapters/memcache.rb +0 -114
  71. data/lib/cachetastic/adapters/store_object.rb +0 -28
  72. data/lib/cachetastic/caches/base.rb +0 -238
  73. data/lib/cachetastic/caches/mack_session_cache.rb +0 -3
  74. data/lib/cachetastic/caches/page_cache.rb +0 -6
  75. data/lib/cachetastic/caches/rails_session_cache.rb +0 -12
  76. data/lib/cachetastic/connection.rb +0 -24
  77. data/lib/cachetastic/errors/unsupported_adapter.rb +0 -7
  78. data/lib/cachetastic/rails_extensions/active_record_base.rb +0 -24
  79. data/lib/cachetastic/rails_extensions/cgi_session_store.rb +0 -59
  80. data/lib/cachetastic/ruby_extensions/kernel.rb +0 -25
  81. data/lib/cachetastic/ruby_extensions/object.rb +0 -22
  82. data/lib/cachetastic/ruby_extensions/string.rb +0 -15
  83. data/test/active_record_test.rb +0 -89
  84. data/test/cacheable_test.rb +0 -88
  85. data/test/cachetastic_unit_test.rb +0 -74
  86. data/test/config.rb +0 -30
  87. data/test/drb_adapter_test.rb +0 -14
  88. data/test/file_adapter_test.rb +0 -49
  89. data/test/memcache_adapter_test.rb +0 -18
  90. data/test/test_helper.rb +0 -75
@@ -1,643 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Cachetastic::Caches::Base</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Cachetastic::Caches::Base</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../../files/lib/cachetastic/caches/base_rb.html">
59
- lib/cachetastic/caches/base.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- <a href="../../Object.html">
69
- Object
70
- </a>
71
- </td>
72
- </tr>
73
- </table>
74
- </div>
75
- <!-- banner header -->
76
-
77
- <div id="bodyContent">
78
-
79
-
80
-
81
- <div id="contextContent">
82
-
83
- <div id="description">
84
- <p>
85
- When creating a new &#8216;Cache&#8217; this class should be extended. Once
86
- extended you&#8216;ll only need to override just the methods that are
87
- different for your cache.
88
- </p>
89
- <pre>
90
- class MyAwesomeCache &lt; Cachetastic::Caches::Base
91
- end
92
- MyAwesomeCache.set(1, &quot;One&quot;)
93
- MyAwesomeCache.get(1) # =&gt; &quot;One&quot;
94
- MyAwesomeCache.update(1, &quot;One!!&quot;)
95
- MyAwesomeCache.get(1) # =&gt; &quot;One!!&quot;
96
- MyAwesomeCache.delete(1)
97
- MyAwesomeCache.get(1) # =&gt; nil
98
-
99
- class MyAwesomeCache &lt; Cachetastic::Caches::Base
100
- class &lt;&lt; self
101
- def get(key)
102
- super(key) do
103
- set(key, key * 10)
104
- end
105
- end
106
- end
107
- end
108
- MyAwesomeCache.set(1, &quot;One&quot;)
109
- MyAwesomeCache.get(1) # =&gt; &quot;One&quot;
110
- MyAwesomeCache.delete(1)
111
- MyAwesomeCache.get(1) # =&gt; 10
112
- </pre>
113
-
114
- </div>
115
-
116
-
117
- </div>
118
-
119
- <div id="method-list">
120
- <h3 class="section-bar">Methods</h3>
121
-
122
- <div class="name-list">
123
- <a href="#M000058">adapter</a>&nbsp;&nbsp;
124
- <a href="#M000061">adapter_supported?</a>&nbsp;&nbsp;
125
- <a href="#M000051">all_registered_caches</a>&nbsp;&nbsp;
126
- <a href="#M000057">cache_name</a>&nbsp;&nbsp;
127
- <a href="#M000064">calculate_expiry_time</a>&nbsp;&nbsp;
128
- <a href="#M000054">delete</a>&nbsp;&nbsp;
129
- <a href="#M000055">expire_all</a>&nbsp;&nbsp;
130
- <a href="#M000052">get</a>&nbsp;&nbsp;
131
- <a href="#M000059">logger</a>&nbsp;&nbsp;
132
- <a href="#M000062">marshall</a>&nbsp;&nbsp;
133
- <a href="#M000053">set</a>&nbsp;&nbsp;
134
- <a href="#M000056">stats</a>&nbsp;&nbsp;
135
- <a href="#M000063">unmarshall</a>&nbsp;&nbsp;
136
- <a href="#M000060">unsupported_adapters</a>&nbsp;&nbsp;
137
- </div>
138
- </div>
139
-
140
- </div>
141
-
142
-
143
- <!-- if includes -->
144
-
145
- <div id="section">
146
-
147
- <div id="class-list">
148
- <h3 class="section-bar">Classes and Modules</h3>
149
-
150
- Class <a href="Base/RegisteredCaches.html" class="link">Cachetastic::Caches::Base::RegisteredCaches</a><br />
151
-
152
- </div>
153
-
154
-
155
- <div id="aliases-list">
156
- <h3 class="section-bar">External Aliases</h3>
157
-
158
- <div class="name-list">
159
- <table summary="aliases">
160
- <tr class="top-aligned-row context-row">
161
- <td class="context-item-name">set</td>
162
- <td>-&gt;</td>
163
- <td class="context-item-value">put</td>
164
- </tr>
165
- </table>
166
- </div>
167
- </div>
168
-
169
-
170
-
171
-
172
-
173
- <!-- if method_list -->
174
- <div id="methods">
175
- <h3 class="section-bar">Public Class methods</h3>
176
-
177
- <div id="method-M000058" class="method-detail">
178
- <a name="M000058"></a>
179
-
180
- <div class="method-heading">
181
- <a href="#M000058" class="method-signature">
182
- <span class="method-name">adapter</span><span class="method-args">()</span>
183
- </a>
184
- </div>
185
-
186
- <div class="method-description">
187
- <p>
188
- Returns the underlying <a
189
- href="../Adapters/Base.html">Cachetastic::Adapters::Base</a> for this
190
- cache.
191
- </p>
192
- <p><a class="source-toggle" href="#"
193
- onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
194
- <div class="method-source-code" id="M000058-source">
195
- <pre>
196
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 139</span>
197
- 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adapter</span>
198
- 140: <span class="ruby-identifier">a</span> = <span class="ruby-identifier">cache_conn_instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">cache_name</span>)
199
- 141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">adapter_supported?</span>(<span class="ruby-identifier">a</span>.<span class="ruby-identifier">class</span>)
200
- 142: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">a</span>
201
- 143: <span class="ruby-keyword kw">else</span>
202
- 144: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Cachetastic</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">UnsupportedAdapter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cache_name</span>, <span class="ruby-identifier">a</span>.<span class="ruby-identifier">class</span>)
203
- 145: <span class="ruby-keyword kw">end</span>
204
- 146: <span class="ruby-keyword kw">end</span>
205
- </pre>
206
- </div>
207
- </div>
208
- </div>
209
-
210
- <div id="method-M000061" class="method-detail">
211
- <a name="M000061"></a>
212
-
213
- <div class="method-heading">
214
- <a href="#M000061" class="method-signature">
215
- <span class="method-name">adapter_supported?</span><span class="method-args">(a = cache_conn_instance.get(cache_name).class)</span>
216
- </a>
217
- </div>
218
-
219
- <div class="method-description">
220
- <p>
221
- Returns true/false on whether the <a href="Base.html#M000058">adapter</a>
222
- you want to use is supported for the cache.
223
- </p>
224
- <p><a class="source-toggle" href="#"
225
- onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
226
- <div class="method-source-code" id="M000061-source">
227
- <pre>
228
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 161</span>
229
- 161: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adapter_supported?</span>(<span class="ruby-identifier">a</span> = <span class="ruby-identifier">cache_conn_instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">cache_name</span>).<span class="ruby-identifier">class</span>)
230
- 162: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">unsupported_adapters</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">a</span>)
231
- 163: <span class="ruby-keyword kw">end</span>
232
- </pre>
233
- </div>
234
- </div>
235
- </div>
236
-
237
- <div id="method-M000051" class="method-detail">
238
- <a name="M000051"></a>
239
-
240
- <div class="method-heading">
241
- <a href="#M000051" class="method-signature">
242
- <span class="method-name">all_registered_caches</span><span class="method-args">()</span>
243
- </a>
244
- </div>
245
-
246
- <div class="method-description">
247
- <p>
248
- Returns a list of all registered caches in the system.
249
- </p>
250
- <p><a class="source-toggle" href="#"
251
- onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
252
- <div class="method-source-code" id="M000051-source">
253
- <pre>
254
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 48</span>
255
- 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all_registered_caches</span>
256
- 49: <span class="ruby-constant">RegisteredCaches</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">list</span>
257
- 50: <span class="ruby-keyword kw">end</span>
258
- </pre>
259
- </div>
260
- </div>
261
- </div>
262
-
263
- <div id="method-M000057" class="method-detail">
264
- <a name="M000057"></a>
265
-
266
- <div class="method-heading">
267
- <a href="#M000057" class="method-signature">
268
- <span class="method-name">cache_name</span><span class="method-args">()</span>
269
- </a>
270
- </div>
271
-
272
- <div class="method-description">
273
- <p>
274
- Returns a &#8216;methodize&#8217; version of the cache&#8216;s class name.
275
- This gets used in logging, namespacing, and as the key in the <a
276
- href="../Connection.html">Cachetastic::Connection</a> class.
277
- </p>
278
- <pre>
279
- MyAwesomeCache.cache # =&gt; &quot;my_awesome_cache&quot;
280
- Cachetastic::Caches::Base # =&gt; &quot;cachetastic_caches_base&quot;
281
- </pre>
282
- <p><a class="source-toggle" href="#"
283
- onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
284
- <div class="method-source-code" id="M000057-source">
285
- <pre>
286
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 134</span>
287
- 134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cache_name</span>
288
- 135: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">methodize</span>
289
- 136: <span class="ruby-keyword kw">end</span>
290
- </pre>
291
- </div>
292
- </div>
293
- </div>
294
-
295
- <div id="method-M000054" class="method-detail">
296
- <a name="M000054"></a>
297
-
298
- <div class="method-heading">
299
- <a href="#M000054" class="method-signature">
300
- <span class="method-name">delete</span><span class="method-args">(key, delay = 0)</span>
301
- </a>
302
- </div>
303
-
304
- <div class="method-description">
305
- <p>
306
- Deletes an object from the cache. The optional delay parameter sets an
307
- offset, in seconds, for when the object should <a
308
- href="Base.html#M000052">get</a> deleted. The default of 0 means the object
309
- gets deleted right away.
310
- </p>
311
- <p><a class="source-toggle" href="#"
312
- onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
313
- <div class="method-source-code" id="M000054-source">
314
- <pre>
315
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 108</span>
316
- 108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">delay</span> = <span class="ruby-value">0</span>)
317
- 109: <span class="ruby-identifier">do_with_logging</span>(<span class="ruby-identifier">:delete</span>, <span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">do</span>
318
- 110: <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">delay</span>)
319
- 111: <span class="ruby-keyword kw">end</span>
320
- 112: <span class="ruby-keyword kw">end</span>
321
- </pre>
322
- </div>
323
- </div>
324
- </div>
325
-
326
- <div id="method-M000055" class="method-detail">
327
- <a name="M000055"></a>
328
-
329
- <div class="method-heading">
330
- <a href="#M000055" class="method-signature">
331
- <span class="method-name">expire_all</span><span class="method-args">()</span>
332
- </a>
333
- </div>
334
-
335
- <div class="method-description">
336
- <p>
337
- Expires all objects for this cache.
338
- </p>
339
- <p><a class="source-toggle" href="#"
340
- onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
341
- <div class="method-source-code" id="M000055-source">
342
- <pre>
343
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 115</span>
344
- 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expire_all</span>
345
- 116: <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">expire_all</span>
346
- 117: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">''</span>, <span class="ruby-value str">''</span>, <span class="ruby-identifier">:expired</span>, <span class="ruby-identifier">cache_name</span>)
347
- 118: <span class="ruby-keyword kw">end</span>
348
- </pre>
349
- </div>
350
- </div>
351
- </div>
352
-
353
- <div id="method-M000052" class="method-detail">
354
- <a name="M000052"></a>
355
-
356
- <div class="method-heading">
357
- <a href="#M000052" class="method-signature">
358
- <span class="method-name">get</span><span class="method-args">(key) {|key if block_given?| ...}</span>
359
- </a>
360
- </div>
361
-
362
- <div class="method-description">
363
- <p>
364
- Returns an object from the cache for a given key. If the object comes back
365
- as nil and a block is given that block will be run and the results of the
366
- block will be run. This can be used to JIT caches, just make sure in the
367
- block to call the <a href="Base.html#M000053">set</a> method because the
368
- results of the block are not automatically cached.
369
- </p>
370
- <p><a class="source-toggle" href="#"
371
- onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
372
- <div class="method-source-code" id="M000052-source">
373
- <pre>
374
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 58</span>
375
- 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
376
- 59: <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">nil</span>
377
- 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>
378
- 61: <span class="ruby-identifier">retryable</span>(<span class="ruby-identifier">:on</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">ArgumentError</span>) <span class="ruby-keyword kw">do</span>
379
- 62: <span class="ruby-keyword kw">begin</span>
380
- 63: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>)
381
- 64: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">nil?</span>
382
- 65: <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">key</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
383
- 66: <span class="ruby-keyword kw">else</span>
384
- 67: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">unmarshall</span>(<span class="ruby-identifier">res</span>)
385
- 68: <span class="ruby-keyword kw">end</span>
386
- 69: <span class="ruby-identifier">res</span>
387
- 70: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">ArgumentError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
388
- 71: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/class\/module .*/</span>)
389
- 72: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>
390
- 73: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">to_s</span>
391
- 74: <span class="ruby-identifier">m</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-value str">&quot;class/module&quot;</span>, <span class="ruby-value str">''</span>)
392
- 75: <span class="ruby-identifier">m</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-value str">&quot;(ArgumentError)&quot;</span>, <span class="ruby-value str">''</span>)
393
- 76: <span class="ruby-identifier">require</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">underscore</span>
394
- 77: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
395
- 78: <span class="ruby-keyword kw">end</span>
396
- 79: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
397
- 80: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
398
- 81: <span class="ruby-keyword kw">end</span>
399
- 82: <span class="ruby-keyword kw">end</span>
400
- 83: <span class="ruby-keyword kw">end</span>
401
- 84: <span class="ruby-identifier">res</span>
402
- 85: <span class="ruby-keyword kw">end</span>
403
- </pre>
404
- </div>
405
- </div>
406
- </div>
407
-
408
- <div id="method-M000059" class="method-detail">
409
- <a name="M000059"></a>
410
-
411
- <div class="method-heading">
412
- <a href="#M000059" class="method-signature">
413
- <span class="method-name">logger</span><span class="method-args">()</span>
414
- </a>
415
- </div>
416
-
417
- <div class="method-description">
418
- <p>
419
- Returns the <a href="../Logger.html">Cachetastic::Logger</a> for the
420
- underlying <a href="../Adapters/Base.html">Cachetastic::Adapters::Base</a>.
421
- </p>
422
- <p><a class="source-toggle" href="#"
423
- onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
424
- <div class="method-source-code" id="M000059-source">
425
- <pre>
426
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 149</span>
427
- 149: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logger</span>
428
- 150: <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">logger</span>
429
- 151: <span class="ruby-keyword kw">end</span>
430
- </pre>
431
- </div>
432
- </div>
433
- </div>
434
-
435
- <div id="method-M000062" class="method-detail">
436
- <a name="M000062"></a>
437
-
438
- <div class="method-heading">
439
- <a href="#M000062" class="method-signature">
440
- <span class="method-name">marshall</span><span class="method-args">(value)</span>
441
- </a>
442
- </div>
443
-
444
- <div class="method-description">
445
- <p><a class="source-toggle" href="#"
446
- onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
447
- <div class="method-source-code" id="M000062-source">
448
- <pre>
449
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 165</span>
450
- 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">marshall</span>(<span class="ruby-identifier">value</span>)
451
- 166: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">value</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">nil?</span>
452
- 167: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">retrieve</span>(<span class="ruby-identifier">:marshall_method</span>, <span class="ruby-identifier">:none</span>).<span class="ruby-identifier">to_sym</span>
453
- 168: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yaml</span>
454
- 169: <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">value</span>)
455
- 170: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ruby</span>
456
- 171: <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">value</span>)
457
- 172: <span class="ruby-keyword kw">else</span>
458
- 173: <span class="ruby-identifier">value</span>
459
- 174: <span class="ruby-keyword kw">end</span>
460
- 175: <span class="ruby-keyword kw">end</span>
461
- </pre>
462
- </div>
463
- </div>
464
- </div>
465
-
466
- <div id="method-M000053" class="method-detail">
467
- <a name="M000053"></a>
468
-
469
- <div class="method-heading">
470
- <a href="#M000053" class="method-signature">
471
- <span class="method-name">set</span><span class="method-args">(key, value, expiry = adapter.configuration.retrieve(:default_expiry, 0))</span>
472
- </a>
473
- </div>
474
-
475
- <div class="method-description">
476
- <p>
477
- Set a particular object info the cache for the given key. An optional third
478
- parameter sets the expiry time for the object in the cache. The default for
479
- this expiry is <a href="Base.html#M000053">set</a> as either 0, meaning it
480
- never expires, or if there&#8216;s a default_expiry time <a
481
- href="Base.html#M000053">set</a> in the config file, that file will be
482
- used. If there is an expiry_swing <a href="Base.html#M000053">set</a> in
483
- the config file it will be +/- to the expiry time. See also: <a
484
- href="Base.html#M000064">calculate_expiry_time</a>
485
- </p>
486
- <p><a class="source-toggle" href="#"
487
- onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
488
- <div class="method-source-code" id="M000053-source">
489
- <pre>
490
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 94</span>
491
- 94: <span class="ruby-keyword kw">def</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> = <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">retrieve</span>(<span class="ruby-identifier">:default_expiry</span>, <span class="ruby-value">0</span>))
492
- 95: <span class="ruby-identifier">do_with_logging</span>(<span class="ruby-identifier">:set</span>, <span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">do</span>
493
- 96: <span class="ruby-identifier">expiry</span> = <span class="ruby-identifier">calculate_expiry_time</span>(<span class="ruby-identifier">expiry</span>)
494
- 97: <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">marshall</span>(<span class="ruby-identifier">value</span>), <span class="ruby-identifier">expiry</span>.<span class="ruby-identifier">to_i</span>)
495
- 98: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">''</span>, <span class="ruby-value str">''</span>, <span class="ruby-identifier">:expiry</span>, <span class="ruby-identifier">cache_name</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">expiry</span>.<span class="ruby-identifier">to_i</span>)
496
- 99: <span class="ruby-identifier">value</span>
497
- 100: <span class="ruby-keyword kw">end</span>
498
- 101: <span class="ruby-keyword kw">end</span>
499
- </pre>
500
- </div>
501
- </div>
502
- </div>
503
-
504
- <div id="method-M000056" class="method-detail">
505
- <a name="M000056"></a>
506
-
507
- <div class="method-heading">
508
- <a href="#M000056" class="method-signature">
509
- <span class="method-name">stats</span><span class="method-args">()</span>
510
- </a>
511
- </div>
512
-
513
- <div class="method-description">
514
- <p>
515
- A convenience method that returns statistics for the underlying <a
516
- href="../Adapters/Base.html">Cachetastic::Adapters::Base</a> for the cache.
517
- </p>
518
- <p><a class="source-toggle" href="#"
519
- onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
520
- <div class="method-source-code" id="M000056-source">
521
- <pre>
522
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 126</span>
523
- 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats</span>
524
- 127: <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">stats</span>
525
- 128: <span class="ruby-keyword kw">end</span>
526
- </pre>
527
- </div>
528
- </div>
529
- </div>
530
-
531
- <div id="method-M000063" class="method-detail">
532
- <a name="M000063"></a>
533
-
534
- <div class="method-heading">
535
- <a href="#M000063" class="method-signature">
536
- <span class="method-name">unmarshall</span><span class="method-args">(value)</span>
537
- </a>
538
- </div>
539
-
540
- <div class="method-description">
541
- <p><a class="source-toggle" href="#"
542
- onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
543
- <div class="method-source-code" id="M000063-source">
544
- <pre>
545
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 177</span>
546
- 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unmarshall</span>(<span class="ruby-identifier">value</span>)
547
- 178: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">value</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">nil?</span>
548
- 179: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">retrieve</span>(<span class="ruby-identifier">:marshall_method</span>, <span class="ruby-identifier">:none</span>).<span class="ruby-identifier">to_sym</span>
549
- 180: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yaml</span>
550
- 181: <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">value</span>)
551
- 182: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ruby</span>
552
- 183: <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">value</span>)
553
- 184: <span class="ruby-keyword kw">else</span>
554
- 185: <span class="ruby-identifier">value</span>
555
- 186: <span class="ruby-keyword kw">end</span>
556
- 187: <span class="ruby-keyword kw">end</span>
557
- </pre>
558
- </div>
559
- </div>
560
- </div>
561
-
562
- <div id="method-M000060" class="method-detail">
563
- <a name="M000060"></a>
564
-
565
- <div class="method-heading">
566
- <a href="#M000060" class="method-signature">
567
- <span class="method-name">unsupported_adapters</span><span class="method-args">()</span>
568
- </a>
569
- </div>
570
-
571
- <div class="method-description">
572
- <p>
573
- Returns an array of unsupported adapters for this cache. Defaults to an
574
- empty array which will let any <a href="Base.html#M000058">adapter</a> be
575
- used by the cache. Override in your specific cache to prevent certain
576
- adapters.
577
- </p>
578
- <p><a class="source-toggle" href="#"
579
- onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
580
- <div class="method-source-code" id="M000060-source">
581
- <pre>
582
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 156</span>
583
- 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unsupported_adapters</span>
584
- 157: []
585
- 158: <span class="ruby-keyword kw">end</span>
586
- </pre>
587
- </div>
588
- </div>
589
- </div>
590
-
591
- <h3 class="section-bar">Private Class methods</h3>
592
-
593
- <div id="method-M000064" class="method-detail">
594
- <a name="M000064"></a>
595
-
596
- <div class="method-heading">
597
- <a href="#M000064" class="method-signature">
598
- <span class="method-name">calculate_expiry_time</span><span class="method-args">(expiry)</span>
599
- </a>
600
- </div>
601
-
602
- <div class="method-description">
603
- <p>
604
- If the expiry time is <a href="Base.html#M000053">set</a> to 60 minutes and
605
- the expiry_swing time is <a href="Base.html#M000053">set</a> to 15 minutes,
606
- this method will return a number between 45 minutes and 75 minutes.
607
- </p>
608
- <p><a class="source-toggle" href="#"
609
- onclick="toggleCode('M000064-source');return false;">[Source]</a></p>
610
- <div class="method-source-code" id="M000064-source">
611
- <pre>
612
- <span class="ruby-comment cmt"># File lib/cachetastic/caches/base.rb, line 192</span>
613
- 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculate_expiry_time</span>(<span class="ruby-identifier">expiry</span>) <span class="ruby-comment cmt"># :doc:</span>
614
- 193: <span class="ruby-identifier">exp_swing</span> = <span class="ruby-identifier">adapter</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">retrieve</span>(<span class="ruby-identifier">:expiry_swing</span>, <span class="ruby-value">0</span>)
615
- 194: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">exp_swing</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">exp_swing</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
616
- 195: <span class="ruby-identifier">swing</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-identifier">exp_swing</span>.<span class="ruby-identifier">to_i</span>)
617
- 196: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">rand</span>(<span class="ruby-value">2</span>)
618
- 197: <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
619
- 198: <span class="ruby-identifier">expiry</span> = (<span class="ruby-identifier">expiry</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">swing</span>)
620
- 199: <span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span>
621
- 200: <span class="ruby-identifier">expiry</span> = (<span class="ruby-identifier">expiry</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">swing</span>)
622
- 201: <span class="ruby-keyword kw">end</span>
623
- 202: <span class="ruby-keyword kw">end</span>
624
- 203: <span class="ruby-identifier">expiry</span>
625
- 204: <span class="ruby-keyword kw">end</span>
626
- </pre>
627
- </div>
628
- </div>
629
- </div>
630
-
631
-
632
- </div>
633
-
634
-
635
- </div>
636
-
637
-
638
- <div id="validator-badges">
639
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
640
- </div>
641
-
642
- </body>
643
- </html>