mongrel_esi 0.5.0 → 0.5.1
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/Rakefile +14 -6
- data/doc/rdoc/classes/ESI/CParser.html +122 -0
- data/doc/rdoc/classes/ESI/Cache.html +178 -0
- data/doc/rdoc/classes/ESI/Cache.src/M000085.html +17 -0
- data/doc/rdoc/classes/ESI/Cache.src/M000086.html +20 -0
- data/doc/rdoc/classes/ESI/Config.html +333 -0
- data/doc/rdoc/classes/ESI/Config.src/M000052.html +18 -0
- data/doc/rdoc/classes/ESI/Config.src/M000053.html +18 -0
- data/doc/rdoc/classes/ESI/Config.src/M000054.html +35 -0
- data/doc/rdoc/classes/ESI/Config.src/M000055.html +38 -0
- data/doc/rdoc/classes/ESI/Config.src/M000056.html +23 -0
- data/doc/rdoc/classes/ESI/Config.src/M000057.html +18 -0
- data/doc/rdoc/classes/ESI/Config.src/M000058.html +20 -0
- data/doc/rdoc/classes/ESI/Config.src/M000059.html +18 -0
- data/doc/rdoc/classes/ESI/Config.src/M000060.html +24 -0
- data/doc/rdoc/classes/ESI/Config/CacheConfig.html +212 -0
- data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000064.html +19 -0
- data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000065.html +19 -0
- data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000066.html +18 -0
- data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000067.html +18 -0
- data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000068.html +18 -0
- data/doc/rdoc/classes/ESI/Config/ConfigRouter.html +187 -0
- data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/M000061.html +19 -0
- data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/M000062.html +21 -0
- data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/M000063.html +21 -0
- data/doc/rdoc/classes/ESI/Dispatcher.html +172 -0
- data/doc/rdoc/classes/ESI/Dispatcher.src/M000087.html +22 -0
- data/doc/rdoc/classes/ESI/Dispatcher.src/M000088.html +18 -0
- data/doc/rdoc/classes/ESI/Fragment.html +218 -0
- data/doc/rdoc/classes/ESI/Fragment.src/M000100.html +20 -0
- data/doc/rdoc/classes/ESI/Fragment.src/M000101.html +18 -0
- data/doc/rdoc/classes/ESI/Fragment.src/M000102.html +18 -0
- data/doc/rdoc/classes/ESI/Invalidator.html +131 -0
- data/doc/rdoc/classes/ESI/Invalidator.src/M000004.html +41 -0
- data/doc/rdoc/classes/ESI/Log.html +221 -0
- data/doc/rdoc/classes/ESI/Log.src/M000030.html +18 -0
- data/doc/rdoc/classes/ESI/Log.src/M000031.html +18 -0
- data/doc/rdoc/classes/ESI/Log.src/M000032.html +18 -0
- data/doc/rdoc/classes/ESI/Log.src/M000033.html +18 -0
- data/doc/rdoc/classes/ESI/Log.src/M000034.html +18 -0
- data/doc/rdoc/classes/ESI/Log.src/M000035.html +18 -0
- data/doc/rdoc/classes/ESI/Log.src/M000036.html +18 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.html +314 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000040.html +24 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000041.html +22 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000042.html +19 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000043.html +23 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000044.html +18 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000045.html +19 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000046.html +18 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000047.html +18 -0
- data/doc/rdoc/classes/ESI/MemcachedCache.src/M000048.html +17 -0
- data/doc/rdoc/classes/ESI/Parser.html +184 -0
- data/doc/rdoc/classes/ESI/Parser.src/M000049.html +51 -0
- data/doc/rdoc/classes/ESI/Parser.src/M000050.html +39 -0
- data/doc/rdoc/classes/ESI/Parser.src/M000051.html +19 -0
- data/doc/rdoc/classes/ESI/Processor.html +194 -0
- data/doc/rdoc/classes/ESI/Processor.src/M000037.html +26 -0
- data/doc/rdoc/classes/ESI/Processor.src/M000038.html +44 -0
- data/doc/rdoc/classes/ESI/Processor.src/M000039.html +26 -0
- data/doc/rdoc/classes/ESI/Proxy.html +304 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000069.html +20 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000070.html +55 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000071.html +53 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000072.html +25 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000073.html +19 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000074.html +27 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000075.html +18 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000076.html +28 -0
- data/doc/rdoc/classes/ESI/Proxy.src/M000077.html +29 -0
- data/doc/rdoc/classes/ESI/Response.html +250 -0
- data/doc/rdoc/classes/ESI/Response.src/M000078.html +23 -0
- data/doc/rdoc/classes/ESI/Response.src/M000079.html +18 -0
- data/doc/rdoc/classes/ESI/Response.src/M000080.html +21 -0
- data/doc/rdoc/classes/ESI/Response.src/M000081.html +20 -0
- data/doc/rdoc/classes/ESI/Response.src/M000082.html +25 -0
- data/doc/rdoc/classes/ESI/Response.src/M000083.html +18 -0
- data/doc/rdoc/classes/ESI/Response.src/M000084.html +33 -0
- data/doc/rdoc/classes/ESI/Router.html +212 -0
- data/doc/rdoc/classes/ESI/Router.src/M000098.html +36 -0
- data/doc/rdoc/classes/ESI/Router.src/M000099.html +25 -0
- data/doc/rdoc/classes/ESI/RubyCache.html +278 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000089.html +20 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000090.html +20 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000091.html +20 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000092.html +22 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000093.html +18 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000094.html +22 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000095.html +18 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000096.html +18 -0
- data/doc/rdoc/classes/ESI/RubyCache.src/M000097.html +18 -0
- data/doc/rdoc/classes/ESI/Tag.html +141 -0
- data/doc/rdoc/classes/ESI/Tag/Attempt.html +113 -0
- data/doc/rdoc/classes/ESI/Tag/Base.html +237 -0
- data/doc/rdoc/classes/ESI/Tag/Base.src/M000026.html +23 -0
- data/doc/rdoc/classes/ESI/Tag/Base.src/M000027.html +22 -0
- data/doc/rdoc/classes/ESI/Tag/Base.src/M000028.html +22 -0
- data/doc/rdoc/classes/ESI/Tag/Base.src/M000029.html +17 -0
- data/doc/rdoc/classes/ESI/Tag/Container.html +206 -0
- data/doc/rdoc/classes/ESI/Tag/Container.src/M000015.html +20 -0
- data/doc/rdoc/classes/ESI/Tag/Container.src/M000016.html +22 -0
- data/doc/rdoc/classes/ESI/Tag/Container.src/M000017.html +25 -0
- data/doc/rdoc/classes/ESI/Tag/Except.html +184 -0
- data/doc/rdoc/classes/ESI/Tag/Except.src/M000018.html +21 -0
- data/doc/rdoc/classes/ESI/Tag/Except.src/M000019.html +20 -0
- data/doc/rdoc/classes/ESI/Tag/Except.src/M000020.html +18 -0
- data/doc/rdoc/classes/ESI/Tag/Include.html +257 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000005.html +20 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000006.html +18 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000007.html +34 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000008.html +22 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000009.html +27 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000010.html +30 -0
- data/doc/rdoc/classes/ESI/Tag/Include.src/M000011.html +51 -0
- data/doc/rdoc/classes/ESI/Tag/Include/Request.html +199 -0
- data/doc/rdoc/classes/ESI/Tag/Include/Request.src/M000012.html +18 -0
- data/doc/rdoc/classes/ESI/Tag/Include/Request.src/M000013.html +44 -0
- data/doc/rdoc/classes/ESI/Tag/Include/Request/Error.html +155 -0
- data/doc/rdoc/classes/ESI/Tag/Include/Request/Error.src/M000014.html +19 -0
- data/doc/rdoc/classes/ESI/Tag/Invalidate.html +171 -0
- data/doc/rdoc/classes/ESI/Tag/Invalidate.src/M000023.html +19 -0
- data/doc/rdoc/classes/ESI/Tag/Invalidate.src/M000024.html +51 -0
- data/doc/rdoc/classes/ESI/Tag/Invalidate.src/M000025.html +19 -0
- data/doc/rdoc/classes/ESI/Tag/Try.html +154 -0
- data/doc/rdoc/classes/ESI/Tag/Try.src/M000021.html +38 -0
- data/doc/rdoc/classes/ESI/Tag/Try.src/M000022.html +18 -0
- data/doc/rdoc/classes/MultiDirHandler.html +198 -0
- data/doc/rdoc/classes/MultiDirHandler.src/M000001.html +20 -0
- data/doc/rdoc/classes/MultiDirHandler.src/M000002.html +28 -0
- data/doc/rdoc/classes/MultiDirHandler.src/M000003.html +22 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/COPYING.html +167 -0
- data/doc/rdoc/files/LICENSE.html +605 -0
- data/doc/rdoc/files/README.html +359 -0
- data/doc/rdoc/files/ext/esi/common_rl.html +160 -0
- data/doc/rdoc/files/ext/esi/esi_parser_c.html +101 -0
- data/doc/rdoc/files/ext/esi/parser_c.html +101 -0
- data/doc/rdoc/files/ext/esi/parser_h.html +101 -0
- data/doc/rdoc/files/ext/esi/parser_rl.html +827 -0
- data/doc/rdoc/files/ext/esi/test/common_rl.html +160 -0
- data/doc/rdoc/files/ext/esi/test/parser_c.html +101 -0
- data/doc/rdoc/files/ext/esi/test/parser_h.html +101 -0
- data/doc/rdoc/files/ext/esi/test/parser_rl.html +827 -0
- data/doc/rdoc/files/ext/esi/test/sp_c.html +101 -0
- data/doc/rdoc/files/ext/esi/test/test_c.html +101 -0
- data/doc/rdoc/files/lib/esi/cache_rb.html +119 -0
- data/doc/rdoc/files/lib/esi/config_rb.html +114 -0
- data/doc/rdoc/files/lib/esi/dispatcher_rb.html +108 -0
- data/doc/rdoc/files/lib/esi/invalidator_rb.html +114 -0
- data/doc/rdoc/files/lib/esi/logger_rb.html +108 -0
- data/doc/rdoc/files/lib/esi/parser_rb.html +120 -0
- data/doc/rdoc/files/lib/esi/processor_rb.html +115 -0
- data/doc/rdoc/files/lib/esi/proxy_rb.html +123 -0
- data/doc/rdoc/files/lib/esi/response_rb.html +116 -0
- data/doc/rdoc/files/lib/esi/router_rb.html +107 -0
- data/doc/rdoc/files/lib/esi/tag/attempt_rb.html +114 -0
- data/doc/rdoc/files/lib/esi/tag/base_rb.html +114 -0
- data/doc/rdoc/files/lib/esi/tag/container_rb.html +115 -0
- data/doc/rdoc/files/lib/esi/tag/except_rb.html +114 -0
- data/doc/rdoc/files/lib/esi/tag/include_rb.html +116 -0
- data/doc/rdoc/files/lib/esi/tag/invalidate_rb.html +115 -0
- data/doc/rdoc/files/lib/esi/tag/try_rb.html +115 -0
- data/doc/rdoc/files/lib/esi/version_rb.html +101 -0
- data/doc/rdoc/files/lib/multi_dirhandler_rb.html +109 -0
- data/doc/rdoc/fr_class_index.html +53 -0
- data/doc/rdoc/fr_file_index.html +59 -0
- data/doc/rdoc/fr_method_index.html +128 -0
- data/doc/rdoc/index.html +24 -0
- data/doc/rdoc/rdoc-style.css +208 -0
- data/ext/esi/esi_parser.c +12 -1
- data/ext/esi/parser.c +492 -3927
- data/ext/esi/parser.rl +83 -14
- data/ext/esi/test/parser.c +1587 -367
- data/ext/esi/test/parser.rl +83 -14
- data/ext/esi/test/sp.c +125 -0
- data/ext/esi/test/test.c +198 -6
- data/lib/esi/cache.rb +5 -8
- data/lib/esi/config.rb +3 -3
- data/lib/esi/dispatcher.rb +2 -4
- data/lib/esi/parser.rb +26 -13
- data/lib/esi/processor.rb +13 -35
- data/lib/esi/proxy.rb +113 -44
- data/lib/esi/response.rb +23 -55
- data/lib/esi/router.rb +0 -11
- data/lib/esi/tag/attempt.rb +2 -1
- data/lib/esi/tag/base.rb +1 -24
- data/lib/esi/tag/container.rb +40 -0
- data/lib/esi/tag/except.rb +3 -1
- data/lib/esi/tag/include.rb +53 -62
- data/lib/esi/tag/try.rb +16 -18
- data/lib/esi/version.rb +9 -0
- data/test/integration/handler_test.rb +49 -12
- data/test/integration/help.rb +12 -0
- data/test/load_test.rb +8 -4
- data/test/load_test_ab.rb +8 -0
- data/test/sample.html +31 -0
- data/test/unit/help.rb +12 -8
- data/test/unit/include_request_test.rb +14 -21
- data/test/unit/parser_test.rb +2 -1
- data/test/unit/response_test.rb +4 -8
- data/tools/rakehelp.rb +1 -1
- metadata +216 -5
data/Rakefile
CHANGED
|
@@ -78,8 +78,13 @@ namespace :ragel do
|
|
|
78
78
|
desc 'generate a PNG graph of the parser'
|
|
79
79
|
task :graph => :verify do
|
|
80
80
|
Dir.chdir "ext/esi" do
|
|
81
|
-
|
|
81
|
+
if ragel_version < "6.0"
|
|
82
|
+
sh 'ragel parser.rl | rlgen-dot -p > esi.dot'
|
|
83
|
+
else
|
|
84
|
+
sh 'ragel -V parser.rl -p > esi.dot'
|
|
85
|
+
end
|
|
82
86
|
sh 'dot -Tpng esi.dot -o ../../esi.png'
|
|
87
|
+
#sh 'dot -Tgif esi.dot -o ../../esi.gif'
|
|
83
88
|
end
|
|
84
89
|
end
|
|
85
90
|
end
|
|
@@ -99,14 +104,17 @@ namespace :size do
|
|
|
99
104
|
end
|
|
100
105
|
end
|
|
101
106
|
|
|
102
|
-
name=
|
|
103
|
-
|
|
107
|
+
name='mongrel_esi'
|
|
108
|
+
require File.join(File.dirname(__FILE__),'lib','esi','version')
|
|
104
109
|
|
|
105
|
-
setup_gem(name,
|
|
110
|
+
setup_gem(name, ESI::VERSION::STRING) do |spec|
|
|
106
111
|
spec.summary = "A small fast ESI HTTP Server built on top of Mongrel"
|
|
107
112
|
spec.description = spec.summary
|
|
108
113
|
spec.test_files = Dir.glob('test/test_*.rb')
|
|
109
114
|
spec.author="Todd A. Fisher"
|
|
115
|
+
spec.email="todd.fisher@gmail.com"
|
|
116
|
+
spec.homepage="http://code.google.com/p/mongrel-esi"
|
|
117
|
+
spec.rubyforge_project = "mongrel-esi"
|
|
110
118
|
spec.executables=['mongrel_esi']
|
|
111
119
|
spec.files += %w(COPYING LICENSE README Rakefile setup.rb)
|
|
112
120
|
|
|
@@ -127,7 +135,7 @@ end
|
|
|
127
135
|
|
|
128
136
|
task :install do
|
|
129
137
|
sh %{rake package}
|
|
130
|
-
sh %{gem install pkg/#{name}-#{
|
|
138
|
+
sh %{gem install pkg/#{name}-#{ESI::VERSION::STRING}}
|
|
131
139
|
end
|
|
132
140
|
|
|
133
141
|
task :uninstall => [:clean] do
|
|
@@ -135,6 +143,6 @@ task :uninstall => [:clean] do
|
|
|
135
143
|
end
|
|
136
144
|
|
|
137
145
|
task :website => [:rcov, :rdoc] do
|
|
138
|
-
#sh %{ rsync -avz --rsh=ssh pkg/#{name-#{
|
|
146
|
+
#sh %{ rsync -avz --rsh=ssh pkg/#{name-#{ESI::VERSION::STRING}
|
|
139
147
|
sh %{ scp -r doc/rdoc doc/index.html Changelog test/coverage mongrel-esi.rubyforge.org:/var/www/gforge-projects/mongrel-esi/ }
|
|
140
148
|
end
|
|
@@ -0,0 +1,122 @@
|
|
|
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: ESI::CParser</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">ESI::CParser</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/ext/esi/esi_parser_c.html">
|
|
59
|
+
ext/esi/esi_parser.c
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
Object
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
</div>
|
|
73
|
+
<!-- banner header -->
|
|
74
|
+
|
|
75
|
+
<div id="bodyContent">
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<div id="contextContent">
|
|
80
|
+
|
|
81
|
+
<div id="description">
|
|
82
|
+
<p>
|
|
83
|
+
}else {
|
|
84
|
+
</p>
|
|
85
|
+
<pre>
|
|
86
|
+
printf( "rb_thread_schedule\n" );
|
|
87
|
+
rb_thread_schedule();
|
|
88
|
+
}
|
|
89
|
+
</pre>
|
|
90
|
+
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
<!-- if includes -->
|
|
101
|
+
|
|
102
|
+
<div id="section">
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
<!-- if method_list -->
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
<div id="validator-badges">
|
|
118
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
</body>
|
|
122
|
+
</html>
|
|
@@ -0,0 +1,178 @@
|
|
|
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: ESI::Cache</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">ESI::Cache</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/lib/esi/cache_rb.html">
|
|
59
|
+
lib/esi/cache.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
|
+
Object
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
</div>
|
|
73
|
+
<!-- banner header -->
|
|
74
|
+
|
|
75
|
+
<div id="bodyContent">
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<div id="contextContent">
|
|
80
|
+
|
|
81
|
+
<div id="description">
|
|
82
|
+
<p>
|
|
83
|
+
cache interface
|
|
84
|
+
</p>
|
|
85
|
+
<pre>
|
|
86
|
+
all caches store Fragments
|
|
87
|
+
|
|
88
|
+
get - uri,params => Fragment
|
|
89
|
+
|
|
90
|
+
cached? - uri,params => boolean
|
|
91
|
+
|
|
92
|
+
put - uri,params, max_age, body => nil
|
|
93
|
+
|
|
94
|
+
sweep! - tells the cache to expire anything that needs expiring
|
|
95
|
+
|
|
96
|
+
keys - is an optional method for iterating over all keys, may not be exposed by all cache backends
|
|
97
|
+
|
|
98
|
+
delete - key remove the key from the cache
|
|
99
|
+
</pre>
|
|
100
|
+
<p>
|
|
101
|
+
Base <a href="Cache.html">Cache</a> object
|
|
102
|
+
</p>
|
|
103
|
+
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<div id="method-list">
|
|
110
|
+
<h3 class="section-bar">Methods</h3>
|
|
111
|
+
|
|
112
|
+
<div class="name-list">
|
|
113
|
+
<a href="#M000086">cache_key</a>
|
|
114
|
+
<a href="#M000085">new</a>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
<!-- if includes -->
|
|
122
|
+
|
|
123
|
+
<div id="section">
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
<!-- if method_list -->
|
|
133
|
+
<div id="methods">
|
|
134
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
135
|
+
|
|
136
|
+
<div id="method-M000085" class="method-detail">
|
|
137
|
+
<a name="M000085"></a>
|
|
138
|
+
|
|
139
|
+
<div class="method-heading">
|
|
140
|
+
<a href="Cache.src/M000085.html" target="Code" class="method-signature"
|
|
141
|
+
onclick="popupCode('Cache.src/M000085.html');return false;">
|
|
142
|
+
<span class="method-name">new</span><span class="method-args">()</span>
|
|
143
|
+
</a>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="method-description">
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<h3 class="section-bar">Protected Instance methods</h3>
|
|
151
|
+
|
|
152
|
+
<div id="method-M000086" class="method-detail">
|
|
153
|
+
<a name="M000086"></a>
|
|
154
|
+
|
|
155
|
+
<div class="method-heading">
|
|
156
|
+
<a href="Cache.src/M000086.html" target="Code" class="method-signature"
|
|
157
|
+
onclick="popupCode('Cache.src/M000086.html');return false;">
|
|
158
|
+
<span class="method-name">cache_key</span><span class="method-args">( uri, params )</span>
|
|
159
|
+
</a>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div class="method-description">
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
<div id="validator-badges">
|
|
174
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
</body>
|
|
178
|
+
</html>
|
|
@@ -0,0 +1,17 @@
|
|
|
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>new (ESI::Cache)</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/esi/cache.rb, line 53</span>
|
|
14
|
+
53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
15
|
+
54: <span class="ruby-keyword kw">end</span></pre>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
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>cache_key (ESI::Cache)</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/esi/cache.rb, line 57</span>
|
|
14
|
+
57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cache_key</span>( <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">params</span> )
|
|
15
|
+
58: <span class="ruby-identifier">http_x_requested_with</span> = <span class="ruby-identifier">params</span>[<span class="ruby-value str">'HTTP_X_REQUESTED_WITH'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">params</span>[<span class="ruby-value str">"X-Requested-With"</span>]
|
|
16
|
+
59: <span class="ruby-identifier">key</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA1</span>.<span class="ruby-identifier">hexdigest</span>(<span class="ruby-node">"#{uri}-#{http_x_requested_with}"</span>)
|
|
17
|
+
60: <span class="ruby-identifier">key</span>
|
|
18
|
+
61: <span class="ruby-keyword kw">end</span></pre>
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|
|
@@ -0,0 +1,333 @@
|
|
|
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: ESI::Config</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">ESI::Config</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/lib/esi/config_rb.html">
|
|
59
|
+
lib/esi/config.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
|
+
Object
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
</div>
|
|
73
|
+
<!-- banner header -->
|
|
74
|
+
|
|
75
|
+
<div id="bodyContent">
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<div id="contextContent">
|
|
80
|
+
|
|
81
|
+
<div id="description">
|
|
82
|
+
<p>
|
|
83
|
+
This file provides configuration options to mongrel-<a
|
|
84
|
+
href="Config.html#M000056">esi</a> Mongrel ESI is a proxy caching server
|
|
85
|
+
with limited load balancing capablities
|
|
86
|
+
</p>
|
|
87
|
+
<pre>
|
|
88
|
+
ESI::Config.define(listeners) do|config|
|
|
89
|
+
|
|
90
|
+
# define the caching rules globally for all routes, defaults to ruby
|
|
91
|
+
config.cache do|c|
|
|
92
|
+
c.memcached do|mc|
|
|
93
|
+
mc.servers = ['localhost:11211'] # memcahed servers
|
|
94
|
+
mc.namespace = 'mesi' # namespace for cache storage
|
|
95
|
+
end
|
|
96
|
+
c.ttl = 600 # default fragment time to live, when <esi:include does not include the max-age attribute
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# define rules for when to enable esi processing globally for all routes
|
|
100
|
+
# using content type it is more flexible, but sometimes you will want to be
|
|
101
|
+
# explicit about when to enable esi processing. For those cases, enable_for_surrogate_only will
|
|
102
|
+
# require the presense of the Surrogate-Control header to contain the content="ESI/1.0" line.
|
|
103
|
+
# see [http://www.w3.org/TR/edge-arch Edge Arch] for details.
|
|
104
|
+
config.esi do|c|
|
|
105
|
+
c.allowed_content_types = ['text/plain', 'text/html']
|
|
106
|
+
#c.enable_for_surrogate_only = true # default is false
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# define request path routing rules, these rules match against request path to select a specific server
|
|
110
|
+
config.routes do|s|
|
|
111
|
+
#s.match( /content/ ) do|r|
|
|
112
|
+
# r.servers = ['127.0.0.1:4000']
|
|
113
|
+
#end
|
|
114
|
+
s.default do|r|
|
|
115
|
+
r.servers = ['127.0.0.1:3000']
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
</pre>
|
|
121
|
+
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<div id="method-list">
|
|
128
|
+
<h3 class="section-bar">Methods</h3>
|
|
129
|
+
|
|
130
|
+
<div class="name-list">
|
|
131
|
+
<a href="#M000053">[]</a>
|
|
132
|
+
<a href="#M000055">cache</a>
|
|
133
|
+
<a href="#M000060">define</a>
|
|
134
|
+
<a href="#M000054">enable_esi_processor?</a>
|
|
135
|
+
<a href="#M000056">esi</a>
|
|
136
|
+
<a href="#M000052">new</a>
|
|
137
|
+
<a href="#M000057">router</a>
|
|
138
|
+
<a href="#M000058">routes</a>
|
|
139
|
+
<a href="#M000059">start_invalidator?</a>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
<!-- if includes -->
|
|
147
|
+
|
|
148
|
+
<div id="section">
|
|
149
|
+
|
|
150
|
+
<div id="class-list">
|
|
151
|
+
<h3 class="section-bar">Classes and Modules</h3>
|
|
152
|
+
|
|
153
|
+
Class <a href="Config/CacheConfig.html" class="link">ESI::Config::CacheConfig</a><br />
|
|
154
|
+
Class <a href="Config/ConfigRouter.html" class="link">ESI::Config::ConfigRouter</a><br />
|
|
155
|
+
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
<div id="attribute-list">
|
|
162
|
+
<h3 class="section-bar">Attributes</h3>
|
|
163
|
+
|
|
164
|
+
<div class="name-list">
|
|
165
|
+
<table>
|
|
166
|
+
<tr class="top-aligned-row context-row">
|
|
167
|
+
<td class="context-item-name">config</td>
|
|
168
|
+
<td class="context-item-value"> [R] </td>
|
|
169
|
+
<td class="context-item-desc"></td>
|
|
170
|
+
</tr>
|
|
171
|
+
</table>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
<!-- if method_list -->
|
|
178
|
+
<div id="methods">
|
|
179
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
180
|
+
|
|
181
|
+
<div id="method-M000060" class="method-detail">
|
|
182
|
+
<a name="M000060"></a>
|
|
183
|
+
|
|
184
|
+
<div class="method-heading">
|
|
185
|
+
<a href="Config.src/M000060.html" target="Code" class="method-signature"
|
|
186
|
+
onclick="popupCode('Config.src/M000060.html');return false;">
|
|
187
|
+
<span class="method-name">define</span><span class="method-args">( listeners ) {|config| ...}</span>
|
|
188
|
+
</a>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<div class="method-description">
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
<div id="method-M000052" class="method-detail">
|
|
196
|
+
<a name="M000052"></a>
|
|
197
|
+
|
|
198
|
+
<div class="method-heading">
|
|
199
|
+
<a href="Config.src/M000052.html" target="Code" class="method-signature"
|
|
200
|
+
onclick="popupCode('Config.src/M000052.html');return false;">
|
|
201
|
+
<span class="method-name">new</span><span class="method-args">(options)</span>
|
|
202
|
+
</a>
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<div class="method-description">
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
210
|
+
|
|
211
|
+
<div id="method-M000053" class="method-detail">
|
|
212
|
+
<a name="M000053"></a>
|
|
213
|
+
|
|
214
|
+
<div class="method-heading">
|
|
215
|
+
<a href="Config.src/M000053.html" target="Code" class="method-signature"
|
|
216
|
+
onclick="popupCode('Config.src/M000053.html');return false;">
|
|
217
|
+
<span class="method-name">[]</span><span class="method-args">(key)</span>
|
|
218
|
+
</a>
|
|
219
|
+
</div>
|
|
220
|
+
|
|
221
|
+
<div class="method-description">
|
|
222
|
+
<p>
|
|
223
|
+
access configuration values
|
|
224
|
+
</p>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
<div id="method-M000055" class="method-detail">
|
|
229
|
+
<a name="M000055"></a>
|
|
230
|
+
|
|
231
|
+
<div class="method-heading">
|
|
232
|
+
<a href="Config.src/M000055.html" target="Code" class="method-signature"
|
|
233
|
+
onclick="popupCode('Config.src/M000055.html');return false;">
|
|
234
|
+
<span class="method-name">cache</span><span class="method-args">() {|cache_options| ...}</span>
|
|
235
|
+
</a>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
<div class="method-description">
|
|
239
|
+
<p>
|
|
240
|
+
returns the <a href="Config.html#M000055">cache</a> object as given in the
|
|
241
|
+
config/esi.yml <a href="Config.html#M000055">cache</a>: key, or defaults to
|
|
242
|
+
ruby as in uses this process the options allowed are ruby and memcache
|
|
243
|
+
</p>
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
246
|
+
|
|
247
|
+
<div id="method-M000054" class="method-detail">
|
|
248
|
+
<a name="M000054"></a>
|
|
249
|
+
|
|
250
|
+
<div class="method-heading">
|
|
251
|
+
<a href="Config.src/M000054.html" target="Code" class="method-signature"
|
|
252
|
+
onclick="popupCode('Config.src/M000054.html');return false;">
|
|
253
|
+
<span class="method-name">enable_esi_processor?</span><span class="method-args">( headers )</span>
|
|
254
|
+
</a>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
<div class="method-description">
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<div id="method-M000056" class="method-detail">
|
|
262
|
+
<a name="M000056"></a>
|
|
263
|
+
|
|
264
|
+
<div class="method-heading">
|
|
265
|
+
<a href="Config.src/M000056.html" target="Code" class="method-signature"
|
|
266
|
+
onclick="popupCode('Config.src/M000056.html');return false;">
|
|
267
|
+
<span class="method-name">esi</span><span class="method-args">() {|options| ...}</span>
|
|
268
|
+
</a>
|
|
269
|
+
</div>
|
|
270
|
+
|
|
271
|
+
<div class="method-description">
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
|
|
275
|
+
<div id="method-M000057" class="method-detail">
|
|
276
|
+
<a name="M000057"></a>
|
|
277
|
+
|
|
278
|
+
<div class="method-heading">
|
|
279
|
+
<a href="Config.src/M000057.html" target="Code" class="method-signature"
|
|
280
|
+
onclick="popupCode('Config.src/M000057.html');return false;">
|
|
281
|
+
<span class="method-name">router</span><span class="method-args">()</span>
|
|
282
|
+
</a>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<div class="method-description">
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
|
|
289
|
+
<div id="method-M000058" class="method-detail">
|
|
290
|
+
<a name="M000058"></a>
|
|
291
|
+
|
|
292
|
+
<div class="method-heading">
|
|
293
|
+
<a href="Config.src/M000058.html" target="Code" class="method-signature"
|
|
294
|
+
onclick="popupCode('Config.src/M000058.html');return false;">
|
|
295
|
+
<span class="method-name">routes</span><span class="method-args">() {|config_router| ...}</span>
|
|
296
|
+
</a>
|
|
297
|
+
</div>
|
|
298
|
+
|
|
299
|
+
<div class="method-description">
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
|
|
303
|
+
<div id="method-M000059" class="method-detail">
|
|
304
|
+
<a name="M000059"></a>
|
|
305
|
+
|
|
306
|
+
<div class="method-heading">
|
|
307
|
+
<a href="Config.src/M000059.html" target="Code" class="method-signature"
|
|
308
|
+
onclick="popupCode('Config.src/M000059.html');return false;">
|
|
309
|
+
<span class="method-name">start_invalidator?</span><span class="method-args">()</span>
|
|
310
|
+
</a>
|
|
311
|
+
</div>
|
|
312
|
+
|
|
313
|
+
<div class="method-description">
|
|
314
|
+
<p>
|
|
315
|
+
return true/false depending on the value of invalidator: on/off within in
|
|
316
|
+
config/esi.yml
|
|
317
|
+
</p>
|
|
318
|
+
</div>
|
|
319
|
+
</div>
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
</div>
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
<div id="validator-badges">
|
|
329
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
330
|
+
</div>
|
|
331
|
+
|
|
332
|
+
</body>
|
|
333
|
+
</html>
|