cachetastic 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/README +10 -2
  2. data/bin/cachetastic_drb_server +97 -0
  3. data/doc/classes/Cachetastic/Adapters/Base.html +16 -16
  4. data/doc/classes/Cachetastic/Adapters/Base.src/M000024.html +9 -5
  5. data/doc/classes/Cachetastic/Adapters/Base.src/M000025.html +7 -8
  6. data/doc/classes/Cachetastic/Adapters/Base.src/M000026.html +21 -0
  7. data/doc/classes/Cachetastic/Adapters/Drb.html +244 -0
  8. data/doc/classes/Cachetastic/Adapters/Drb.src/M000027.html +22 -0
  9. data/doc/classes/Cachetastic/Adapters/Drb.src/M000028.html +18 -0
  10. data/doc/classes/Cachetastic/Adapters/{LocalMemory.src/M000017.html → Drb.src/M000029.html} +4 -4
  11. data/doc/classes/Cachetastic/Adapters/Drb.src/M000030.html +26 -0
  12. data/doc/classes/Cachetastic/Adapters/Drb.src/M000031.html +18 -0
  13. data/doc/classes/Cachetastic/Adapters/Drb.src/M000032.html +25 -0
  14. data/doc/classes/Cachetastic/Adapters/File.html +30 -30
  15. data/doc/classes/Cachetastic/Adapters/File.src/{M000026.html → M000033.html} +0 -0
  16. data/doc/classes/Cachetastic/Adapters/File.src/{M000027.html → M000034.html} +0 -0
  17. data/doc/classes/Cachetastic/Adapters/File.src/{M000028.html → M000035.html} +0 -0
  18. data/doc/classes/Cachetastic/Adapters/File.src/{M000029.html → M000036.html} +2 -0
  19. data/doc/classes/Cachetastic/Adapters/File.src/{M000030.html → M000037.html} +1 -1
  20. data/doc/classes/Cachetastic/Adapters/File.src/{M000031.html → M000038.html} +1 -1
  21. data/doc/classes/Cachetastic/Adapters/LocalMemory.html +30 -30
  22. data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000018.html +4 -4
  23. data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000019.html +3 -3
  24. data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000020.html +4 -12
  25. data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000021.html +12 -4
  26. data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000022.html +4 -11
  27. data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000023.html +25 -0
  28. data/doc/classes/Cachetastic/Adapters/Memcache.html +55 -55
  29. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000007.html +5 -4
  30. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000008.html +4 -4
  31. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000009.html +4 -4
  32. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000010.html +4 -4
  33. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000011.html +4 -4
  34. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000012.html +4 -10
  35. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000013.html +10 -5
  36. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000014.html +5 -6
  37. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000015.html +6 -6
  38. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000016.html +5 -9
  39. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000017.html +24 -0
  40. data/doc/classes/Cachetastic/Caches/Base/RegisteredCaches.html +5 -5
  41. data/doc/classes/Cachetastic/Caches/Base/RegisteredCaches.src/{M000043.html → M000053.html} +0 -0
  42. data/doc/classes/Cachetastic/Caches/Base.html +103 -63
  43. data/doc/classes/Cachetastic/Caches/Base.src/M000040.html +4 -4
  44. data/doc/classes/Cachetastic/Caches/Base.src/M000041.html +29 -4
  45. data/doc/classes/Cachetastic/Caches/Base.src/M000042.html +8 -13
  46. data/doc/classes/Cachetastic/Caches/Base.src/{M000035.html → M000043.html} +0 -0
  47. data/doc/classes/Cachetastic/Caches/Base.src/{M000036.html → M000044.html} +0 -0
  48. data/doc/classes/Cachetastic/Caches/Base.src/{M000037.html → M000045.html} +0 -0
  49. data/doc/classes/Cachetastic/Caches/Base.src/{M000038.html → M000046.html} +0 -0
  50. data/doc/classes/Cachetastic/Caches/Base.src/{M000039.html → M000047.html} +0 -0
  51. data/doc/classes/Cachetastic/Caches/Base.src/M000048.html +23 -0
  52. data/doc/classes/Cachetastic/Caches/Base.src/{M000032.html → M000049.html} +4 -4
  53. data/doc/classes/Cachetastic/Caches/Base.src/M000050.html +18 -0
  54. data/doc/classes/Cachetastic/Caches/Base.src/M000051.html +18 -0
  55. data/doc/classes/Cachetastic/Caches/Base.src/M000052.html +28 -0
  56. data/doc/classes/Cachetastic/Caches/RailsSessionCache.html +26 -0
  57. data/doc/classes/Cachetastic/Caches/RailsSessionCache.src/M000039.html +18 -0
  58. data/doc/classes/Cachetastic/Connection.html +11 -11
  59. data/doc/classes/Cachetastic/Connection.src/{M000044.html → M000054.html} +0 -0
  60. data/doc/classes/Cachetastic/Connection.src/{M000045.html → M000055.html} +0 -0
  61. data/doc/classes/Cachetastic/Errors/UnsupportedAdapter.html +137 -0
  62. data/doc/classes/Cachetastic/Errors/UnsupportedAdapter.src/M000006.html +18 -0
  63. data/doc/classes/Cachetastic/Logger.html +5 -5
  64. data/doc/classes/Cachetastic/Logger.src/{M000046.html → M000056.html} +0 -0
  65. data/doc/created.rid +1 -1
  66. data/doc/files/init_rb.html +18 -2
  67. data/doc/files/lib/adapters/cachetastic_adapters_base_rb.html +1 -1
  68. data/doc/files/lib/adapters/cachetastic_adapters_drb_rb.html +115 -0
  69. data/doc/files/lib/adapters/cachetastic_adapters_file_rb.html +1 -1
  70. data/doc/files/lib/adapters/cachetastic_adapters_local_memory_rb.html +1 -1
  71. data/doc/files/lib/caches/cachetastic_caches_base_rb.html +1 -1
  72. data/doc/files/lib/caches/cachetastic_caches_rails_session_cache_rb.html +1 -1
  73. data/doc/files/lib/cachetastic_rb.html +21 -3
  74. data/doc/files/lib/errors/cachetastic_errors_unsupported_adapter_rb.html +101 -0
  75. data/doc/fr_class_index.html +2 -0
  76. data/doc/fr_file_index.html +2 -0
  77. data/doc/fr_method_index.html +51 -41
  78. data/doc/index.html +1 -1
  79. data/lib/adapters/cachetastic_adapters_base.rb +1 -1
  80. data/lib/adapters/cachetastic_adapters_drb.rb +56 -0
  81. data/lib/cachetastic.rb +1 -0
  82. data/lib/tasks/rubyforge_config.yml +1 -1
  83. metadata +44 -27
  84. data/doc/classes/Cachetastic/Adapters/Base.src/M000023.html +0 -24
  85. data/doc/classes/Cachetastic/Adapters/Memcache.src/M000006.html +0 -19
  86. data/doc/classes/Cachetastic/Caches/Base.src/M000033.html +0 -43
  87. data/doc/classes/Cachetastic/Caches/Base.src/M000034.html +0 -23
  88. data/init.rb +0 -1
data/README CHANGED
@@ -11,7 +11,7 @@
11
11
  debug: true # true | false (default: false)
12
12
  # this is the type of file store to be used for this cache.
13
13
  # more adapters can be developed and plugged in as desired
14
- adapter: local_memory # local_memory | memcache | file (default: local_memory)
14
+ adapter: local_memory # local_memory | memcache | file | drb (default: local_memory)
15
15
  # this will marshall objects into and out of the store.
16
16
  # so far yaml is the only supported marshall format.
17
17
  marshall_method: none # none | yaml (default: none)
@@ -22,7 +22,6 @@
22
22
  # objects will go into the cache with an expiry time sometime between 45 mins and 75 mins.
23
23
  expiry_swing: <%= 15.minutes %> # time in seconds (default: 0)
24
24
  # these options get passed on directly to the store.
25
- # only the memcache and file stores uses these options currently.
26
25
  store_options: # listed below are options for memcache
27
26
  c_threshold: 10_000
28
27
  compression: true
@@ -31,6 +30,8 @@
31
30
  urlencode: false
32
31
  store_options: # listed below are the options for file
33
32
  dir: /cachetastic/caches/ # absolute path to the directory where caches should be stored.
33
+ store_options: # listed below are the options for drb
34
+ host: "druby://127.0.0.1:61676"
34
35
  # configure logging for this cache:
35
36
  logging:
36
37
  # n number of logs can be configured for a cache
@@ -64,6 +65,13 @@
64
65
  # example of how to override options for rails session cacheing:
65
66
  cachetastic_caches_rails_session_cache_options:
66
67
  default_expiry: <%= 30.minutes %>
68
+
69
+ =Cachetastic::Drb::Server
70
+ If you want to use Drb and the Cachetastic::Adapters::Drb adapter, you'll have to use the Cachetastic::Drb::Server that comes with Cachetastic. Using this server is simple. It gets installed as a binary when you install the Cachetastic gem.
71
+
72
+ $ cachetastic_drb_server # that will start the drb server on the host 127.0.0.1 on the port 61676
73
+
74
+ The server takes to command line parameters: -h <host> -p <port>
67
75
 
68
76
  =Examples:
69
77
 
@@ -0,0 +1,97 @@
1
+ require 'thread'
2
+ require 'drb'
3
+ require 'singleton'
4
+ require 'optparse'
5
+ require 'optparse/time'
6
+ require 'ostruct'
7
+
8
+ # require the necessary gems:
9
+ require 'rubygems'
10
+ gem 'ruby_extensions'
11
+ require 'ruby_extensions'
12
+ gem 'application_configuration'
13
+ require 'application_configuration'
14
+ gem 'cachetastic'
15
+ require 'cachetastic'
16
+
17
+ $SAFE = 1
18
+
19
+ SERVER_OPTIONS = OpenStruct.new
20
+ SERVER_OPTIONS.host = "127.0.0.1"
21
+ SERVER_OPTIONS.port = "61676"
22
+ SERVER_OPTIONS.config_file = nil
23
+
24
+ opts = OptionParser.new do |opts|
25
+
26
+ opts.on("-h [HOST]") do |v|
27
+ SERVER_OPTIONS.host = v
28
+ end
29
+
30
+ opts.on("-p [PORT]", Integer) do |v|
31
+ SERVER_OPTIONS.port = v
32
+ end
33
+
34
+ opts.on("-c [CONFIG_FILE]") do |v|
35
+ SERVER_OPTIONS.config_file = v
36
+ end
37
+
38
+ end
39
+
40
+ opts.parse!(ARGV)
41
+
42
+ if SERVER_OPTIONS.config_file
43
+ app_config.load_file(SERVER_OPTIONS.config_file)
44
+ end
45
+
46
+ module Cachetastic
47
+ module Drb
48
+ class Server
49
+ include Singleton
50
+
51
+ def initialize
52
+ DRb.start_service("druby://#{SERVER_OPTIONS.host}:#{SERVER_OPTIONS.port}", self)
53
+ puts "Cachetastic::Drb::Server listening for connection..."
54
+ DRb.thread.join
55
+ end # initialize
56
+
57
+ def get(ns, key)
58
+ # puts cache_for_namespace(ns).inspect
59
+ cache_for_namespace(ns).get(key)
60
+ end
61
+
62
+ def set(ns, key, value, expiry = 0)
63
+ cache_for_namespace(ns).set(key, value)
64
+ # puts cache_for_namespace(ns).inspect
65
+ value
66
+ end
67
+
68
+ def delete(ns, key, delay = 0)
69
+ cache_for_namespace(ns).delete(key, delay = 0)
70
+ # puts cache_for_namespace(ns).inspect
71
+ end
72
+
73
+ def expire_all(ns)
74
+ instance_variable_set("@store_for_#{ns}", Cachetastic::Adapters::LocalMemory.new("store_for_#{ns}"))
75
+ end
76
+
77
+ def ping
78
+ true
79
+ end
80
+
81
+ private
82
+ def cache_for_namespace(ns)
83
+ # puts "@store_for_#{ns}"
84
+ c = instance_variable_get("@store_for_#{ns}")
85
+ if c.nil?
86
+ instance_variable_set("@store_for_#{ns}", Cachetastic::Adapters::LocalMemory.new("store_for_#{ns}"))
87
+ c = instance_variable_get("@store_for_#{ns}")
88
+ end
89
+ c
90
+ end
91
+
92
+ end # Server
93
+ end # Drb
94
+ end # Cachetastic
95
+
96
+ # let's start `er up!
97
+ Cachetastic::Drb::Server.instance
@@ -109,7 +109,7 @@ the store supports it, a delay can be used.
109
109
 
110
110
  </li>
111
111
  <li>valid? - used to test whether or not the store is still valid. If this
112
- returns false a <a href="Base.html#M000023">new</a> instance of the adapter
112
+ returns false a <a href="Base.html#M000024">new</a> instance of the adapter
113
113
  is created by <a href="../Connection.html">Cachetastic::Connection</a>
114
114
 
115
115
  </li>
@@ -124,9 +124,9 @@ is created by <a href="../Connection.html">Cachetastic::Connection</a>
124
124
  <h3 class="section-bar">Methods</h3>
125
125
 
126
126
  <div class="name-list">
127
- <a href="#M000024">debug?</a>&nbsp;&nbsp;
128
- <a href="#M000025">get_options</a>&nbsp;&nbsp;
129
- <a href="#M000023">new</a>&nbsp;&nbsp;
127
+ <a href="#M000025">debug?</a>&nbsp;&nbsp;
128
+ <a href="#M000026">get_options</a>&nbsp;&nbsp;
129
+ <a href="#M000024">new</a>&nbsp;&nbsp;
130
130
  </div>
131
131
  </div>
132
132
 
@@ -186,12 +186,12 @@ is created by <a href="../Connection.html">Cachetastic::Connection</a>
186
186
  <div id="methods">
187
187
  <h3 class="section-bar">Public Class methods</h3>
188
188
 
189
- <div id="method-M000025" class="method-detail">
190
- <a name="M000025"></a>
189
+ <div id="method-M000026" class="method-detail">
190
+ <a name="M000026"></a>
191
191
 
192
192
  <div class="method-heading">
193
- <a href="Base.src/M000025.html" target="Code" class="method-signature"
194
- onclick="popupCode('Base.src/M000025.html');return false;">
193
+ <a href="Base.src/M000026.html" target="Code" class="method-signature"
194
+ onclick="popupCode('Base.src/M000026.html');return false;">
195
195
  <span class="method-name">get_options</span><span class="method-args">(name)</span>
196
196
  </a>
197
197
  </div>
@@ -210,12 +210,12 @@ methodized name of the cache with _options attached at the end. Examples:
210
210
  </div>
211
211
  </div>
212
212
 
213
- <div id="method-M000023" class="method-detail">
214
- <a name="M000023"></a>
213
+ <div id="method-M000024" class="method-detail">
214
+ <a name="M000024"></a>
215
215
 
216
216
  <div class="method-heading">
217
- <a href="Base.src/M000023.html" target="Code" class="method-signature"
218
- onclick="popupCode('Base.src/M000023.html');return false;">
217
+ <a href="Base.src/M000024.html" target="Code" class="method-signature"
218
+ onclick="popupCode('Base.src/M000024.html');return false;">
219
219
  <span class="method-name">new</span><span class="method-args">(name)</span>
220
220
  </a>
221
221
  </div>
@@ -226,12 +226,12 @@ methodized name of the cache with _options attached at the end. Examples:
226
226
 
227
227
  <h3 class="section-bar">Public Instance methods</h3>
228
228
 
229
- <div id="method-M000024" class="method-detail">
230
- <a name="M000024"></a>
229
+ <div id="method-M000025" class="method-detail">
230
+ <a name="M000025"></a>
231
231
 
232
232
  <div class="method-heading">
233
- <a href="Base.src/M000024.html" target="Code" class="method-signature"
234
- onclick="popupCode('Base.src/M000024.html');return false;">
233
+ <a href="Base.src/M000025.html" target="Code" class="method-signature"
234
+ onclick="popupCode('Base.src/M000025.html');return false;">
235
235
  <span class="method-name">debug?</span><span class="method-args">()</span>
236
236
  </a>
237
237
  </div>
@@ -5,15 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>debug? (Cachetastic::Adapters::Base)</title>
8
+ <title>new (Cachetastic::Adapters::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_base.rb, line 42</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">debug?</span>
15
- <span class="ruby-identifier">ivar_cache</span>(<span class="ruby-identifier">:debug</span>) <span class="ruby-keyword kw">do</span>
16
- (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">all_options</span>[<span class="ruby-value str">&quot;debug&quot;</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">||</span> <span class="ruby-keyword kw">false</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_base.rb, line 24</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>)
15
+ <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
16
+ <span class="ruby-identifier">configure</span>
17
+ <span class="ruby-identifier">setup</span>
18
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">debug?</span>
19
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">:self</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">inspect</span>)
20
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">:options</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">all_options</span>.<span class="ruby-identifier">inspect</span>)
17
21
  <span class="ruby-keyword kw">end</span>
18
22
  <span class="ruby-keyword kw">end</span></pre>
19
23
  </body>
@@ -5,17 +5,16 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>get_options (Cachetastic::Adapters::Base)</title>
8
+ <title>debug? (Cachetastic::Adapters::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_base.rb, line 56</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_options</span>(<span class="ruby-identifier">name</span>)
15
- <span class="ruby-identifier">options</span> = <span class="ruby-identifier">app_config</span>.<span class="ruby-identifier">cachetastic_default_options</span>
16
- <span class="ruby-identifier">options</span> = {<span class="ruby-value str">&quot;adapter&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;local_memory&quot;</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
17
- <span class="ruby-identifier">options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">app_config</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">methodize</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;_options&quot;</span>) <span class="ruby-operator">||</span> {})
18
- <span class="ruby-identifier">options</span>
19
- <span class="ruby-keyword kw">end</span></pre>
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_base.rb, line 42</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">debug?</span>
15
+ <span class="ruby-identifier">ivar_cache</span>(<span class="ruby-identifier">:debug</span>) <span class="ruby-keyword kw">do</span>
16
+ (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">all_options</span>[<span class="ruby-value str">&quot;debug&quot;</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">||</span> <span class="ruby-keyword kw">false</span>)
17
+ <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-keyword kw">end</span></pre>
20
19
  </body>
21
20
  </html>
@@ -0,0 +1,21 @@
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>
7
+ <head>
8
+ <title>get_options (Cachetastic::Adapters::Base)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_base.rb, line 56</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_options</span>(<span class="ruby-identifier">name</span>)
15
+ <span class="ruby-identifier">options</span> = (<span class="ruby-identifier">app_config</span>.<span class="ruby-identifier">cachetastic_default_options</span> <span class="ruby-operator">||</span> {})
16
+ <span class="ruby-identifier">options</span> = {<span class="ruby-value str">&quot;adapter&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;local_memory&quot;</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
17
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">app_config</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">methodize</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;_options&quot;</span>) <span class="ruby-operator">||</span> {})
18
+ <span class="ruby-identifier">options</span>
19
+ <span class="ruby-keyword kw">end</span></pre>
20
+ </body>
21
+ </html>
@@ -0,0 +1,244 @@
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::Adapters::Drb</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::Adapters::Drb</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/adapters/cachetastic_adapters_drb_rb.html">
59
+ lib/adapters/cachetastic_adapters_drb.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="Base.html">
69
+ Cachetastic::Adapters::Base
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
+ This adapter uses Cachetastic::Drb::Server as it&#8216;s backing. The
86
+ configuration for this should look something like this:
87
+ </p>
88
+ <pre>
89
+ my_awesome_cache_options:
90
+ debug: false
91
+ adapter: drb
92
+ store_options:
93
+ host: druby://127.0.0.1:61676
94
+ </pre>
95
+
96
+ </div>
97
+
98
+
99
+ </div>
100
+
101
+ <div id="method-list">
102
+ <h3 class="section-bar">Methods</h3>
103
+
104
+ <div class="name-list">
105
+ <a href="#M000032">delete</a>&nbsp;&nbsp;
106
+ <a href="#M000029">expire_all</a>&nbsp;&nbsp;
107
+ <a href="#M000030">get</a>&nbsp;&nbsp;
108
+ <a href="#M000031">set</a>&nbsp;&nbsp;
109
+ <a href="#M000028">setup</a>&nbsp;&nbsp;
110
+ <a href="#M000027">valid?</a>&nbsp;&nbsp;
111
+ </div>
112
+ </div>
113
+
114
+ </div>
115
+
116
+
117
+ <!-- if includes -->
118
+
119
+ <div id="section">
120
+
121
+
122
+
123
+
124
+
125
+ <div id="attribute-list">
126
+ <h3 class="section-bar">Attributes</h3>
127
+
128
+ <div class="name-list">
129
+ <table>
130
+ <tr class="top-aligned-row context-row">
131
+ <td class="context-item-name">drb_store</td>
132
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
133
+ <td class="context-item-desc"></td>
134
+ </tr>
135
+ </table>
136
+ </div>
137
+ </div>
138
+
139
+
140
+
141
+ <!-- if method_list -->
142
+ <div id="methods">
143
+ <h3 class="section-bar">Public Instance methods</h3>
144
+
145
+ <div id="method-M000032" class="method-detail">
146
+ <a name="M000032"></a>
147
+
148
+ <div class="method-heading">
149
+ <a href="Drb.src/M000032.html" target="Code" class="method-signature"
150
+ onclick="popupCode('Drb.src/M000032.html');return false;">
151
+ <span class="method-name">delete</span><span class="method-args">(key, delay = 0)</span>
152
+ </a>
153
+ </div>
154
+
155
+ <div class="method-description">
156
+ </div>
157
+ </div>
158
+
159
+ <div id="method-M000029" class="method-detail">
160
+ <a name="M000029"></a>
161
+
162
+ <div class="method-heading">
163
+ <a href="Drb.src/M000029.html" target="Code" class="method-signature"
164
+ onclick="popupCode('Drb.src/M000029.html');return false;">
165
+ <span class="method-name">expire_all</span><span class="method-args">()</span>
166
+ </a>
167
+ </div>
168
+
169
+ <div class="method-description">
170
+ </div>
171
+ </div>
172
+
173
+ <div id="method-M000030" class="method-detail">
174
+ <a name="M000030"></a>
175
+
176
+ <div class="method-heading">
177
+ <a href="Drb.src/M000030.html" target="Code" class="method-signature"
178
+ onclick="popupCode('Drb.src/M000030.html');return false;">
179
+ <span class="method-name">get</span><span class="method-args">(key)</span>
180
+ </a>
181
+ </div>
182
+
183
+ <div class="method-description">
184
+ <p>
185
+ See <a href="Base.html">Cachetastic::Adapters::Base</a>
186
+ </p>
187
+ </div>
188
+ </div>
189
+
190
+ <div id="method-M000031" class="method-detail">
191
+ <a name="M000031"></a>
192
+
193
+ <div class="method-heading">
194
+ <a href="Drb.src/M000031.html" target="Code" class="method-signature"
195
+ onclick="popupCode('Drb.src/M000031.html');return false;">
196
+ <span class="method-name">set</span><span class="method-args">(key, value, expiry = 0)</span>
197
+ </a>
198
+ </div>
199
+
200
+ <div class="method-description">
201
+ </div>
202
+ </div>
203
+
204
+ <div id="method-M000028" class="method-detail">
205
+ <a name="M000028"></a>
206
+
207
+ <div class="method-heading">
208
+ <a href="Drb.src/M000028.html" target="Code" class="method-signature"
209
+ onclick="popupCode('Drb.src/M000028.html');return false;">
210
+ <span class="method-name">setup</span><span class="method-args">()</span>
211
+ </a>
212
+ </div>
213
+
214
+ <div class="method-description">
215
+ </div>
216
+ </div>
217
+
218
+ <div id="method-M000027" class="method-detail">
219
+ <a name="M000027"></a>
220
+
221
+ <div class="method-heading">
222
+ <a href="Drb.src/M000027.html" target="Code" class="method-signature"
223
+ onclick="popupCode('Drb.src/M000027.html');return false;">
224
+ <span class="method-name">valid?</span><span class="method-args">()</span>
225
+ </a>
226
+ </div>
227
+
228
+ <div class="method-description">
229
+ </div>
230
+ </div>
231
+
232
+
233
+ </div>
234
+
235
+
236
+ </div>
237
+
238
+
239
+ <div id="validator-badges">
240
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
241
+ </div>
242
+
243
+ </body>
244
+ </html>
@@ -0,0 +1,22 @@
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>
7
+ <head>
8
+ <title>valid? (Cachetastic::Adapters::Drb)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_drb.rb, line 12</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid?</span>
15
+ <span class="ruby-keyword kw">begin</span>
16
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drb_store</span>.<span class="ruby-identifier">ping</span>
17
+ <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>
18
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
19
+ <span class="ruby-keyword kw">end</span>
20
+ <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </html>
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>setup (Cachetastic::Adapters::Drb)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_drb.rb, line 20</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup</span>
15
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drb_store</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new_with_uri</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">store_options</span>[<span class="ruby-value str">&quot;host&quot;</span>])
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>valid? (Cachetastic::Adapters::LocalMemory)</title>
8
+ <title>expire_all (Cachetastic::Adapters::Drb)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_local_memory.rb, line 8</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid?</span>
15
- <span class="ruby-keyword kw">true</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_drb.rb, line 24</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expire_all</span>
15
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drb_store</span>.<span class="ruby-identifier">expire_all</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>)
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -0,0 +1,26 @@
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>
7
+ <head>
8
+ <title>get (Cachetastic::Adapters::Drb)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_drb.rb, line 29</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>)
15
+ <span class="ruby-identifier">so</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drb_store</span>.<span class="ruby-identifier">get</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>)
16
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">so</span>
17
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">so</span>.<span class="ruby-identifier">invalid?</span>
18
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>)
19
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">so</span>.<span class="ruby-identifier">value</span>
22
+ <span class="ruby-keyword kw">end</span>
23
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
24
+ <span class="ruby-keyword kw">end</span></pre>
25
+ </body>
26
+ </html>
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>set (Cachetastic::Adapters::Drb)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/adapters/cachetastic_adapters_drb.rb, line 41</span>
14
+ <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-value">0</span>)
15
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drb_store</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-constant">Cachetastic</span><span class="ruby-operator">::</span><span class="ruby-constant">Adapters</span><span class="ruby-operator">::</span><span class="ruby-constant">StoreObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">expiry</span>))
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>