cachetastic 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +10 -2
- data/bin/cachetastic_drb_server +97 -0
- data/doc/classes/Cachetastic/Adapters/Base.html +16 -16
- data/doc/classes/Cachetastic/Adapters/Base.src/M000024.html +9 -5
- data/doc/classes/Cachetastic/Adapters/Base.src/M000025.html +7 -8
- data/doc/classes/Cachetastic/Adapters/Base.src/M000026.html +21 -0
- data/doc/classes/Cachetastic/Adapters/Drb.html +244 -0
- data/doc/classes/Cachetastic/Adapters/Drb.src/M000027.html +22 -0
- data/doc/classes/Cachetastic/Adapters/Drb.src/M000028.html +18 -0
- data/doc/classes/Cachetastic/Adapters/{LocalMemory.src/M000017.html → Drb.src/M000029.html} +4 -4
- data/doc/classes/Cachetastic/Adapters/Drb.src/M000030.html +26 -0
- data/doc/classes/Cachetastic/Adapters/Drb.src/M000031.html +18 -0
- data/doc/classes/Cachetastic/Adapters/Drb.src/M000032.html +25 -0
- data/doc/classes/Cachetastic/Adapters/File.html +30 -30
- data/doc/classes/Cachetastic/Adapters/File.src/{M000026.html → M000033.html} +0 -0
- data/doc/classes/Cachetastic/Adapters/File.src/{M000027.html → M000034.html} +0 -0
- data/doc/classes/Cachetastic/Adapters/File.src/{M000028.html → M000035.html} +0 -0
- data/doc/classes/Cachetastic/Adapters/File.src/{M000029.html → M000036.html} +2 -0
- data/doc/classes/Cachetastic/Adapters/File.src/{M000030.html → M000037.html} +1 -1
- data/doc/classes/Cachetastic/Adapters/File.src/{M000031.html → M000038.html} +1 -1
- data/doc/classes/Cachetastic/Adapters/LocalMemory.html +30 -30
- data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000018.html +4 -4
- data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000019.html +3 -3
- data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000020.html +4 -12
- data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000021.html +12 -4
- data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000022.html +4 -11
- data/doc/classes/Cachetastic/Adapters/LocalMemory.src/M000023.html +25 -0
- data/doc/classes/Cachetastic/Adapters/Memcache.html +55 -55
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000007.html +5 -4
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000008.html +4 -4
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000009.html +4 -4
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000010.html +4 -4
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000011.html +4 -4
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000012.html +4 -10
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000013.html +10 -5
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000014.html +5 -6
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000015.html +6 -6
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000016.html +5 -9
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000017.html +24 -0
- data/doc/classes/Cachetastic/Caches/Base/RegisteredCaches.html +5 -5
- data/doc/classes/Cachetastic/Caches/Base/RegisteredCaches.src/{M000043.html → M000053.html} +0 -0
- data/doc/classes/Cachetastic/Caches/Base.html +103 -63
- data/doc/classes/Cachetastic/Caches/Base.src/M000040.html +4 -4
- data/doc/classes/Cachetastic/Caches/Base.src/M000041.html +29 -4
- data/doc/classes/Cachetastic/Caches/Base.src/M000042.html +8 -13
- data/doc/classes/Cachetastic/Caches/Base.src/{M000035.html → M000043.html} +0 -0
- data/doc/classes/Cachetastic/Caches/Base.src/{M000036.html → M000044.html} +0 -0
- data/doc/classes/Cachetastic/Caches/Base.src/{M000037.html → M000045.html} +0 -0
- data/doc/classes/Cachetastic/Caches/Base.src/{M000038.html → M000046.html} +0 -0
- data/doc/classes/Cachetastic/Caches/Base.src/{M000039.html → M000047.html} +0 -0
- data/doc/classes/Cachetastic/Caches/Base.src/M000048.html +23 -0
- data/doc/classes/Cachetastic/Caches/Base.src/{M000032.html → M000049.html} +4 -4
- data/doc/classes/Cachetastic/Caches/Base.src/M000050.html +18 -0
- data/doc/classes/Cachetastic/Caches/Base.src/M000051.html +18 -0
- data/doc/classes/Cachetastic/Caches/Base.src/M000052.html +28 -0
- data/doc/classes/Cachetastic/Caches/RailsSessionCache.html +26 -0
- data/doc/classes/Cachetastic/Caches/RailsSessionCache.src/M000039.html +18 -0
- data/doc/classes/Cachetastic/Connection.html +11 -11
- data/doc/classes/Cachetastic/Connection.src/{M000044.html → M000054.html} +0 -0
- data/doc/classes/Cachetastic/Connection.src/{M000045.html → M000055.html} +0 -0
- data/doc/classes/Cachetastic/Errors/UnsupportedAdapter.html +137 -0
- data/doc/classes/Cachetastic/Errors/UnsupportedAdapter.src/M000006.html +18 -0
- data/doc/classes/Cachetastic/Logger.html +5 -5
- data/doc/classes/Cachetastic/Logger.src/{M000046.html → M000056.html} +0 -0
- data/doc/created.rid +1 -1
- data/doc/files/init_rb.html +18 -2
- data/doc/files/lib/adapters/cachetastic_adapters_base_rb.html +1 -1
- data/doc/files/lib/adapters/cachetastic_adapters_drb_rb.html +115 -0
- data/doc/files/lib/adapters/cachetastic_adapters_file_rb.html +1 -1
- data/doc/files/lib/adapters/cachetastic_adapters_local_memory_rb.html +1 -1
- data/doc/files/lib/caches/cachetastic_caches_base_rb.html +1 -1
- data/doc/files/lib/caches/cachetastic_caches_rails_session_cache_rb.html +1 -1
- data/doc/files/lib/cachetastic_rb.html +21 -3
- data/doc/files/lib/errors/cachetastic_errors_unsupported_adapter_rb.html +101 -0
- data/doc/fr_class_index.html +2 -0
- data/doc/fr_file_index.html +2 -0
- data/doc/fr_method_index.html +51 -41
- data/doc/index.html +1 -1
- data/lib/adapters/cachetastic_adapters_base.rb +1 -1
- data/lib/adapters/cachetastic_adapters_drb.rb +56 -0
- data/lib/cachetastic.rb +1 -0
- data/lib/tasks/rubyforge_config.yml +1 -1
- metadata +44 -27
- data/doc/classes/Cachetastic/Adapters/Base.src/M000023.html +0 -24
- data/doc/classes/Cachetastic/Adapters/Memcache.src/M000006.html +0 -19
- data/doc/classes/Cachetastic/Caches/Base.src/M000033.html +0 -43
- data/doc/classes/Cachetastic/Caches/Base.src/M000034.html +0 -23
- 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#
|
|
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="#
|
|
128
|
-
<a href="#
|
|
129
|
-
<a href="#
|
|
127
|
+
<a href="#M000025">debug?</a>
|
|
128
|
+
<a href="#M000026">get_options</a>
|
|
129
|
+
<a href="#M000024">new</a>
|
|
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-
|
|
190
|
-
<a name="
|
|
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/
|
|
194
|
-
onclick="popupCode('Base.src/
|
|
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-
|
|
214
|
-
<a name="
|
|
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/
|
|
218
|
-
onclick="popupCode('Base.src/
|
|
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-
|
|
230
|
-
<a name="
|
|
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/
|
|
234
|
-
onclick="popupCode('Base.src/
|
|
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>
|
|
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
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-
|
|
16
|
-
|
|
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>
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<span class="ruby-identifier">
|
|
17
|
-
|
|
18
|
-
|
|
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">"debug"</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">"adapter"</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"local_memory"</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">"_options"</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‘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>
|
|
106
|
+
<a href="#M000029">expire_all</a>
|
|
107
|
+
<a href="#M000030">get</a>
|
|
108
|
+
<a href="#M000031">set</a>
|
|
109
|
+
<a href="#M000028">setup</a>
|
|
110
|
+
<a href="#M000027">valid?</a>
|
|
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"> [RW] </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">></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">"host"</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>
|
|
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/
|
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
|
15
|
-
<span class="ruby-keyword kw">
|
|
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>
|