mongrel_esi 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. data/README +10 -9
  2. data/doc/rdoc/classes/ESI/Cache.html +10 -10
  3. data/doc/rdoc/classes/ESI/Cache.src/{M000085.html → M000087.html} +0 -0
  4. data/doc/rdoc/classes/ESI/Cache.src/{M000086.html → M000088.html} +0 -0
  5. data/doc/rdoc/classes/ESI/Config.html +43 -62
  6. data/doc/rdoc/classes/ESI/Config.src/M000049.html +18 -0
  7. data/doc/rdoc/classes/ESI/Config.src/{M000059.html → M000050.html} +5 -5
  8. data/doc/rdoc/classes/ESI/Config.src/M000051.html +35 -0
  9. data/doc/rdoc/classes/ESI/Config.src/M000052.html +27 -5
  10. data/doc/rdoc/classes/ESI/Config.src/M000053.html +10 -5
  11. data/doc/rdoc/classes/ESI/Config.src/M000054.html +5 -22
  12. data/doc/rdoc/classes/ESI/Config.src/M000055.html +7 -25
  13. data/doc/rdoc/classes/ESI/Config.src/M000056.html +11 -10
  14. data/doc/rdoc/classes/ESI/Config/CacheConfig.html +25 -25
  15. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/{M000068.html → M000060.html} +6 -5
  16. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/{M000065.html → M000061.html} +5 -5
  17. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/{M000066.html → M000062.html} +4 -4
  18. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/{M000067.html → M000063.html} +4 -4
  19. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000064.html +5 -6
  20. data/doc/rdoc/classes/ESI/Config/ConfigRouter.html +15 -15
  21. data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/{M000061.html → M000057.html} +5 -5
  22. data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/{M000062.html → M000058.html} +7 -7
  23. data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/{M000063.html → M000059.html} +7 -7
  24. data/doc/rdoc/classes/ESI/Dispatcher.html +17 -15
  25. data/doc/rdoc/classes/ESI/Dispatcher.src/{M000087.html → M000092.html} +4 -7
  26. data/doc/rdoc/classes/ESI/Dispatcher.src/M000093.html +27 -0
  27. data/doc/rdoc/classes/ESI/Fragment.html +15 -15
  28. data/doc/rdoc/classes/ESI/Fragment.src/{M000100.html → M000111.html} +0 -0
  29. data/doc/rdoc/classes/ESI/Fragment.src/{M000101.html → M000112.html} +0 -0
  30. data/doc/rdoc/classes/ESI/Fragment.src/{M000102.html → M000113.html} +0 -0
  31. data/doc/rdoc/classes/ESI/MemcachedCache.html +46 -46
  32. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000037.html +24 -0
  33. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000038.html +22 -0
  34. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000039.html +19 -0
  35. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000040.html +10 -11
  36. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000041.html +5 -9
  37. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000042.html +6 -6
  38. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000043.html +5 -10
  39. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000044.html +5 -5
  40. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000045.html +4 -6
  41. data/doc/rdoc/classes/ESI/OutputAdapter.html +204 -0
  42. data/doc/rdoc/classes/ESI/OutputAdapter.src/M000094.html +37 -0
  43. data/doc/rdoc/classes/ESI/OutputAdapter.src/M000095.html +18 -0
  44. data/doc/rdoc/classes/ESI/OutputAdapter.src/M000096.html +18 -0
  45. data/doc/rdoc/classes/ESI/OutputAdapter.src/M000097.html +18 -0
  46. data/doc/rdoc/classes/ESI/Parser.html +15 -15
  47. data/doc/rdoc/classes/ESI/Parser.src/{M000049.html → M000065.html} +0 -0
  48. data/doc/rdoc/classes/ESI/Parser.src/{M000050.html → M000066.html} +0 -0
  49. data/doc/rdoc/classes/ESI/Parser.src/{M000051.html → M000067.html} +0 -0
  50. data/doc/rdoc/classes/ESI/Processor.html +15 -15
  51. data/doc/rdoc/classes/ESI/Processor.src/{M000037.html → M000046.html} +0 -0
  52. data/doc/rdoc/classes/ESI/Processor.src/{M000038.html → M000047.html} +1 -1
  53. data/doc/rdoc/classes/ESI/Processor.src/{M000039.html → M000048.html} +0 -0
  54. data/doc/rdoc/classes/ESI/Proxy.html +48 -48
  55. data/doc/rdoc/classes/ESI/Proxy.src/M000071.html +7 -40
  56. data/doc/rdoc/classes/ESI/Proxy.src/M000072.html +50 -12
  57. data/doc/rdoc/classes/ESI/Proxy.src/M000073.html +49 -6
  58. data/doc/rdoc/classes/ESI/Proxy.src/M000074.html +11 -14
  59. data/doc/rdoc/classes/ESI/Proxy.src/M000075.html +6 -5
  60. data/doc/rdoc/classes/ESI/Proxy.src/M000076.html +9 -15
  61. data/doc/rdoc/classes/ESI/Proxy.src/M000077.html +5 -16
  62. data/doc/rdoc/classes/ESI/Proxy.src/M000078.html +28 -0
  63. data/doc/rdoc/classes/ESI/Proxy.src/M000079.html +29 -0
  64. data/doc/rdoc/classes/ESI/RackAdapter.html +214 -0
  65. data/doc/rdoc/classes/ESI/RackAdapter.src/M000068.html +18 -0
  66. data/doc/rdoc/classes/ESI/RackAdapter.src/M000069.html +34 -0
  67. data/doc/rdoc/classes/ESI/{MemcachedCache.src/M000048.html → RackAdapter.src/M000070.html} +4 -4
  68. data/doc/rdoc/classes/ESI/RackConfig.html +173 -0
  69. data/doc/rdoc/classes/ESI/RackConfig.src/M000089.html +28 -0
  70. data/doc/rdoc/classes/ESI/RackConfig.src/M000090.html +18 -0
  71. data/doc/rdoc/classes/ESI/RackConfig.src/M000091.html +20 -0
  72. data/doc/rdoc/classes/ESI/Request.html +158 -0
  73. data/doc/rdoc/classes/ESI/{MemcachedCache.src/M000046.html → Request.src/M000098.html} +5 -5
  74. data/doc/rdoc/classes/ESI/Request.src/M000099.html +18 -0
  75. data/doc/rdoc/classes/ESI/Response.html +36 -36
  76. data/doc/rdoc/classes/ESI/Response.src/M000080.html +10 -8
  77. data/doc/rdoc/classes/ESI/Response.src/M000081.html +5 -7
  78. data/doc/rdoc/classes/ESI/Response.src/M000082.html +8 -12
  79. data/doc/rdoc/classes/ESI/Response.src/M000083.html +7 -5
  80. data/doc/rdoc/classes/ESI/Response.src/M000084.html +12 -20
  81. data/doc/rdoc/classes/ESI/Response.src/{M000079.html → M000085.html} +5 -5
  82. data/doc/rdoc/classes/ESI/Response.src/M000086.html +33 -0
  83. data/doc/rdoc/classes/ESI/Router.html +10 -10
  84. data/doc/rdoc/classes/ESI/Router.src/{M000098.html → M000109.html} +0 -0
  85. data/doc/rdoc/classes/ESI/Router.src/{M000099.html → M000110.html} +0 -0
  86. data/doc/rdoc/classes/ESI/RubyCache.html +45 -45
  87. data/doc/rdoc/classes/ESI/RubyCache.src/{M000089.html → M000100.html} +6 -6
  88. data/doc/rdoc/classes/ESI/RubyCache.src/{M000090.html → M000101.html} +6 -6
  89. data/doc/rdoc/classes/ESI/RubyCache.src/{M000091.html → M000102.html} +6 -6
  90. data/doc/rdoc/classes/ESI/RubyCache.src/{M000092.html → M000103.html} +8 -8
  91. data/doc/rdoc/classes/ESI/RubyCache.src/{M000093.html → M000104.html} +4 -4
  92. data/doc/rdoc/classes/ESI/RubyCache.src/{M000094.html → M000105.html} +8 -8
  93. data/doc/rdoc/classes/ESI/RubyCache.src/{M000095.html → M000106.html} +4 -4
  94. data/doc/rdoc/classes/ESI/RubyCache.src/{M000096.html → M000107.html} +4 -4
  95. data/doc/rdoc/classes/ESI/RubyCache.src/{M000097.html → M000108.html} +4 -4
  96. data/doc/rdoc/classes/ESI/Tag.html +8 -8
  97. data/doc/rdoc/created.rid +1 -1
  98. data/doc/rdoc/files/COPYING.html +1 -1
  99. data/doc/rdoc/files/LICENSE.html +1 -1
  100. data/doc/rdoc/files/README.html +12 -10
  101. data/doc/rdoc/files/ext/esi/common_rl.html +1 -1
  102. data/doc/rdoc/files/ext/esi/esi_parser_c.html +1 -1
  103. data/doc/rdoc/files/ext/esi/parser_c.html +1 -1
  104. data/doc/rdoc/files/ext/esi/parser_h.html +1 -1
  105. data/doc/rdoc/files/ext/esi/parser_rl.html +122 -82
  106. data/doc/rdoc/files/ext/esi/test/test_c.html +1 -1
  107. data/doc/rdoc/files/lib/esi/cache_rb.html +2 -1
  108. data/doc/rdoc/files/lib/esi/config_rb.html +2 -1
  109. data/doc/rdoc/files/lib/esi/dispatcher_rb.html +3 -1
  110. data/doc/rdoc/files/lib/esi/invalidator_rb.html +1 -1
  111. data/doc/rdoc/files/lib/esi/logger_rb.html +1 -1
  112. data/doc/rdoc/files/lib/esi/parser_rb.html +1 -1
  113. data/doc/rdoc/files/lib/esi/processor_rb.html +1 -1
  114. data/doc/rdoc/files/lib/esi/proxy_rb.html +2 -2
  115. data/doc/rdoc/files/{ext/esi/test/parser_c.html → lib/esi/rack_adapter_rb.html} +21 -5
  116. data/doc/rdoc/files/lib/esi/response_rb.html +1 -1
  117. data/doc/rdoc/files/lib/esi/router_rb.html +1 -1
  118. data/doc/rdoc/files/lib/esi/tag/attempt_rb.html +1 -1
  119. data/doc/rdoc/files/lib/esi/tag/base_rb.html +1 -1
  120. data/doc/rdoc/files/lib/esi/tag/container_rb.html +1 -1
  121. data/doc/rdoc/files/lib/esi/tag/except_rb.html +1 -1
  122. data/doc/rdoc/files/lib/esi/tag/include_rb.html +1 -1
  123. data/doc/rdoc/files/lib/esi/tag/invalidate_rb.html +1 -1
  124. data/doc/rdoc/files/lib/esi/tag/try_rb.html +1 -1
  125. data/doc/rdoc/files/lib/esi/version_rb.html +1 -1
  126. data/doc/rdoc/files/lib/multi_dirhandler_rb.html +1 -1
  127. data/doc/rdoc/fr_class_index.html +4 -0
  128. data/doc/rdoc/fr_file_index.html +1 -5
  129. data/doc/rdoc/fr_method_index.html +87 -76
  130. data/ext/esi/esi_parser.c +2 -2
  131. data/ext/esi/parser.c +133 -107
  132. data/ext/esi/parser.h +9 -4
  133. data/ext/esi/parser.rl +99 -73
  134. data/ext/esi/test/test.c +11 -6
  135. data/lib/esi/cache.rb +7 -3
  136. data/lib/esi/config.rb +4 -8
  137. data/lib/esi/dispatcher.rb +14 -5
  138. data/lib/esi/processor.rb +1 -1
  139. data/lib/esi/proxy.rb +58 -48
  140. data/lib/esi/rack_adapter.rb +97 -0
  141. data/lib/esi/response.rb +30 -1
  142. data/lib/esi/version.rb +1 -1
  143. data/test/bench-plot.rb +31 -0
  144. data/test/benchmarks/csv-perf-serial0.4 +101 -0
  145. data/test/benchmarks/csv-perf-trunk +101 -0
  146. data/test/benchmarks/perf-serial0.4-n1000-c1.csv +101 -0
  147. data/test/benchmarks/perf-serial0.4-n1000-c2.csv +101 -0
  148. data/test/benchmarks/perf-serial0.4-n1000-c3.csv +101 -0
  149. data/test/benchmarks/perf-serial0.4-n1000-c4.csv +101 -0
  150. data/test/benchmarks/perf-serial0.4-n1000-c5.csv +101 -0
  151. data/test/benchmarks/perf-serial0.4-n1000-c6.csv +101 -0
  152. data/test/benchmarks/perf-serial0.4-n1000-c7.csv +101 -0
  153. data/test/benchmarks/perf-trunk-n1000-c1.csv +101 -0
  154. data/test/benchmarks/perf-trunk-n1000-c2.csv +101 -0
  155. data/test/benchmarks/perf-trunk-n1000-c3.csv +101 -0
  156. data/test/benchmarks/perf-trunk-n1000-c4.csv +101 -0
  157. data/test/benchmarks/perf-trunk-n1000-c5.csv +101 -0
  158. data/test/benchmarks/perf-trunk-n1000-c6.csv +101 -0
  159. data/test/benchmarks/perf-trunk-n1000-c7.csv +101 -0
  160. data/test/load_test.rb +5 -2
  161. data/test/load_test_ab.rb +9 -4
  162. metadata +261 -227
  163. data/doc/rdoc/classes/ESI/Config.src/M000057.html +0 -18
  164. data/doc/rdoc/classes/ESI/Config.src/M000058.html +0 -20
  165. data/doc/rdoc/classes/ESI/Config.src/M000060.html +0 -24
  166. data/doc/rdoc/classes/ESI/Dispatcher.src/M000088.html +0 -18
  167. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000047.html +0 -18
  168. data/doc/rdoc/classes/ESI/Proxy.src/M000069.html +0 -20
  169. data/doc/rdoc/classes/ESI/Proxy.src/M000070.html +0 -55
  170. data/doc/rdoc/classes/ESI/Response.src/M000078.html +0 -23
  171. data/doc/rdoc/files/ext/esi/test/common_rl.html +0 -160
  172. data/doc/rdoc/files/ext/esi/test/parser_h.html +0 -101
  173. data/doc/rdoc/files/ext/esi/test/parser_rl.html +0 -827
  174. data/doc/rdoc/files/ext/esi/test/sp_c.html +0 -101
  175. data/ext/esi/test/common.rl +0 -46
  176. data/ext/esi/test/parser.c +0 -1875
  177. data/ext/esi/test/parser.h +0 -120
  178. data/ext/esi/test/parser.rl +0 -585
  179. data/ext/esi/test/sp.c +0 -125
data/README CHANGED
@@ -1,5 +1,5 @@
1
1
  =About
2
- MongrelESI is meant to make caching easier by distributing the cache logic.
2
+ mongrel-esi is meant to make caching easier by distributing the cache logic.
3
3
 
4
4
  The idea is to represent each part of the page as a unique URL.
5
5
 
@@ -9,11 +9,12 @@ specific <esi:* tags before servering the response. MongrelESI currently, only
9
9
  =Tags
10
10
 
11
11
  esi:include:
12
- src - request path, response replaces esi:include tag
12
+ src - request path, response replaces esi:include tag
13
+ alt - if src is unavailable, use alt
13
14
  timeout - how long to wait on the response
14
15
  max-age - how long to cache the entity
15
16
  onerror - whether continue on errors or trigger an exception
16
-
17
+
17
18
  esi:invalidate:
18
19
  encloses invalidation instructions.
19
20
  these instructions currently only support basic invalidation
@@ -39,7 +40,7 @@ esi:try/esi:attempt/esi:except
39
40
 
40
41
  =Proxy Config
41
42
 
42
- MongrelESI is a proxy server. To configure where requests should be proxied modify the config/routes.yml file.
43
+ mongrel-esi is a proxy server. To configure where requests should be proxied modify the config/routes.yml file.
43
44
 
44
45
  Here's an example:
45
46
 
@@ -87,7 +88,7 @@ If the uri is not already cached, the cache server will request /content/1, whic
87
88
 
88
89
  <div>hello User42</div>
89
90
 
90
- And finally, MongrelESI will respond to the original client request with the combined documents:
91
+ And finally, mongrel-esi will respond to the original client request with the combined documents:
91
92
  <html>
92
93
  <head><title>Your Page</title>
93
94
  </head>
@@ -101,7 +102,7 @@ And finally, MongrelESI will respond to the original client request with the com
101
102
 
102
103
  == Integrating with your applications
103
104
 
104
- MongrelESI was built to support integrating lots of applications together.
105
+ mongrel-esi was built to support integrating lots of applications together.
105
106
 
106
107
  Primarily, you'll want to integrate by having one base application and many tiny applications that
107
108
  surface within your primary application. In the rails sense think components. In a bigger sense think
@@ -109,11 +110,11 @@ multiple application technologies all integrating into the same application. Im
109
110
  returning up to the minute chat conversations in one part of the page, while rails delivers a reliable listing of
110
111
  current forum discussion, and maybe a python presense indicator for forum posts...
111
112
 
112
- One thing to keep in mind is mongrel esi is a proxy server. This means for each request it needs to know where to route
113
+ One thing to keep in mind is mongrel-esi is a proxy server. This means for each request it needs to know where to route
113
114
  the requests. To support this config.rb can express any regex to match a url and determine where a request should be
114
115
  forwarded as well as defining a default route.
115
116
 
116
- It is also sometimes convenient to allow multiple applications to store or house static content. For this to work mongrel esi
117
+ It is also sometimes convenient to allow multiple applications to store or house static content. For this to work mongrel-esi
117
118
  needs to know in what directories to search for static files. This can be done by using the MultiDirHandler (see rev-config.rb)
118
119
 
119
120
 
@@ -121,7 +122,7 @@ needs to know in what directories to search for static files. This can be done
121
122
 
122
123
  From [http://www.w3.org/TR/esi-lang esi-lang]
123
124
 
124
- MongrelESI supports basic include, exception handling and invalidation. It does not include support for
125
+ mongrel-esi supports basic include, exception handling and invalidation. It does not include support for
125
126
  Variable or Conditional processing. It does have suppport for COOKIE variables.
126
127
  (e.g. $(HTTP_COOKIE{name}) will be replaced with the value of the cookie, name)
127
128
 
@@ -110,8 +110,8 @@ Base <a href="Cache.html">Cache</a> object
110
110
  <h3 class="section-bar">Methods</h3>
111
111
 
112
112
  <div class="name-list">
113
- <a href="#M000086">cache_key</a>&nbsp;&nbsp;
114
- <a href="#M000085">new</a>&nbsp;&nbsp;
113
+ <a href="#M000088">cache_key</a>&nbsp;&nbsp;
114
+ <a href="#M000087">new</a>&nbsp;&nbsp;
115
115
  </div>
116
116
  </div>
117
117
 
@@ -133,12 +133,12 @@ Base <a href="Cache.html">Cache</a> object
133
133
  <div id="methods">
134
134
  <h3 class="section-bar">Public Class methods</h3>
135
135
 
136
- <div id="method-M000085" class="method-detail">
137
- <a name="M000085"></a>
136
+ <div id="method-M000087" class="method-detail">
137
+ <a name="M000087"></a>
138
138
 
139
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;">
140
+ <a href="Cache.src/M000087.html" target="Code" class="method-signature"
141
+ onclick="popupCode('Cache.src/M000087.html');return false;">
142
142
  <span class="method-name">new</span><span class="method-args">()</span>
143
143
  </a>
144
144
  </div>
@@ -149,12 +149,12 @@ Base <a href="Cache.html">Cache</a> object
149
149
 
150
150
  <h3 class="section-bar">Protected Instance methods</h3>
151
151
 
152
- <div id="method-M000086" class="method-detail">
153
- <a name="M000086"></a>
152
+ <div id="method-M000088" class="method-detail">
153
+ <a name="M000088"></a>
154
154
 
155
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;">
156
+ <a href="Cache.src/M000088.html" target="Code" class="method-signature"
157
+ onclick="popupCode('Cache.src/M000088.html');return false;">
158
158
  <span class="method-name">cache_key</span><span class="method-args">( uri, params )</span>
159
159
  </a>
160
160
  </div>
@@ -81,7 +81,7 @@
81
81
  <div id="description">
82
82
  <p>
83
83
  This file provides configuration options to mongrel-<a
84
- href="Config.html#M000056">esi</a> Mongrel ESI is a proxy caching server
84
+ href="Config.html#M000053">esi</a> Mongrel ESI is a proxy caching server
85
85
  with limited load balancing capablities
86
86
  </p>
87
87
  <pre>
@@ -128,15 +128,14 @@ with limited load balancing capablities
128
128
  <h3 class="section-bar">Methods</h3>
129
129
 
130
130
  <div class="name-list">
131
- <a href="#M000053">[]</a>&nbsp;&nbsp;
132
- <a href="#M000055">cache</a>&nbsp;&nbsp;
133
- <a href="#M000060">define</a>&nbsp;&nbsp;
134
- <a href="#M000054">enable_esi_processor?</a>&nbsp;&nbsp;
135
- <a href="#M000056">esi</a>&nbsp;&nbsp;
136
- <a href="#M000052">new</a>&nbsp;&nbsp;
137
- <a href="#M000057">router</a>&nbsp;&nbsp;
138
- <a href="#M000058">routes</a>&nbsp;&nbsp;
139
- <a href="#M000059">start_invalidator?</a>&nbsp;&nbsp;
131
+ <a href="#M000050">[]</a>&nbsp;&nbsp;
132
+ <a href="#M000052">cache</a>&nbsp;&nbsp;
133
+ <a href="#M000056">define</a>&nbsp;&nbsp;
134
+ <a href="#M000051">enable_esi_processor?</a>&nbsp;&nbsp;
135
+ <a href="#M000053">esi</a>&nbsp;&nbsp;
136
+ <a href="#M000049">new</a>&nbsp;&nbsp;
137
+ <a href="#M000054">router</a>&nbsp;&nbsp;
138
+ <a href="#M000055">routes</a>&nbsp;&nbsp;
140
139
  </div>
141
140
  </div>
142
141
 
@@ -178,12 +177,12 @@ Class <a href="Config/ConfigRouter.html" class="link">ESI::Config::ConfigRouter<
178
177
  <div id="methods">
179
178
  <h3 class="section-bar">Public Class methods</h3>
180
179
 
181
- <div id="method-M000060" class="method-detail">
182
- <a name="M000060"></a>
180
+ <div id="method-M000056" class="method-detail">
181
+ <a name="M000056"></a>
183
182
 
184
183
  <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;">
184
+ <a href="Config.src/M000056.html" target="Code" class="method-signature"
185
+ onclick="popupCode('Config.src/M000056.html');return false;">
187
186
  <span class="method-name">define</span><span class="method-args">( listeners ) {|config| ...}</span>
188
187
  </a>
189
188
  </div>
@@ -192,12 +191,12 @@ Class <a href="Config/ConfigRouter.html" class="link">ESI::Config::ConfigRouter<
192
191
  </div>
193
192
  </div>
194
193
 
195
- <div id="method-M000052" class="method-detail">
196
- <a name="M000052"></a>
194
+ <div id="method-M000049" class="method-detail">
195
+ <a name="M000049"></a>
197
196
 
198
197
  <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;">
198
+ <a href="Config.src/M000049.html" target="Code" class="method-signature"
199
+ onclick="popupCode('Config.src/M000049.html');return false;">
201
200
  <span class="method-name">new</span><span class="method-args">(options)</span>
202
201
  </a>
203
202
  </div>
@@ -208,12 +207,12 @@ Class <a href="Config/ConfigRouter.html" class="link">ESI::Config::ConfigRouter<
208
207
 
209
208
  <h3 class="section-bar">Public Instance methods</h3>
210
209
 
211
- <div id="method-M000053" class="method-detail">
212
- <a name="M000053"></a>
210
+ <div id="method-M000050" class="method-detail">
211
+ <a name="M000050"></a>
213
212
 
214
213
  <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;">
214
+ <a href="Config.src/M000050.html" target="Code" class="method-signature"
215
+ onclick="popupCode('Config.src/M000050.html');return false;">
217
216
  <span class="method-name">[]</span><span class="method-args">(key)</span>
218
217
  </a>
219
218
  </div>
@@ -225,31 +224,31 @@ access configuration values
225
224
  </div>
226
225
  </div>
227
226
 
228
- <div id="method-M000055" class="method-detail">
229
- <a name="M000055"></a>
227
+ <div id="method-M000052" class="method-detail">
228
+ <a name="M000052"></a>
230
229
 
231
230
  <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;">
231
+ <a href="Config.src/M000052.html" target="Code" class="method-signature"
232
+ onclick="popupCode('Config.src/M000052.html');return false;">
234
233
  <span class="method-name">cache</span><span class="method-args">() {|cache_options| ...}</span>
235
234
  </a>
236
235
  </div>
237
236
 
238
237
  <div class="method-description">
239
238
  <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
239
+ returns the <a href="Config.html#M000052">cache</a> object as given in the
240
+ config/esi.yml <a href="Config.html#M000052">cache</a>: key, or defaults to
242
241
  ruby as in uses this process the options allowed are ruby and memcache
243
242
  </p>
244
243
  </div>
245
244
  </div>
246
245
 
247
- <div id="method-M000054" class="method-detail">
248
- <a name="M000054"></a>
246
+ <div id="method-M000051" class="method-detail">
247
+ <a name="M000051"></a>
249
248
 
250
249
  <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;">
250
+ <a href="Config.src/M000051.html" target="Code" class="method-signature"
251
+ onclick="popupCode('Config.src/M000051.html');return false;">
253
252
  <span class="method-name">enable_esi_processor?</span><span class="method-args">( headers )</span>
254
253
  </a>
255
254
  </div>
@@ -258,12 +257,12 @@ ruby as in uses this process the options allowed are ruby and memcache
258
257
  </div>
259
258
  </div>
260
259
 
261
- <div id="method-M000056" class="method-detail">
262
- <a name="M000056"></a>
260
+ <div id="method-M000053" class="method-detail">
261
+ <a name="M000053"></a>
263
262
 
264
263
  <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;">
264
+ <a href="Config.src/M000053.html" target="Code" class="method-signature"
265
+ onclick="popupCode('Config.src/M000053.html');return false;">
267
266
  <span class="method-name">esi</span><span class="method-args">() {|options| ...}</span>
268
267
  </a>
269
268
  </div>
@@ -272,12 +271,12 @@ ruby as in uses this process the options allowed are ruby and memcache
272
271
  </div>
273
272
  </div>
274
273
 
275
- <div id="method-M000057" class="method-detail">
276
- <a name="M000057"></a>
274
+ <div id="method-M000054" class="method-detail">
275
+ <a name="M000054"></a>
277
276
 
278
277
  <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;">
278
+ <a href="Config.src/M000054.html" target="Code" class="method-signature"
279
+ onclick="popupCode('Config.src/M000054.html');return false;">
281
280
  <span class="method-name">router</span><span class="method-args">()</span>
282
281
  </a>
283
282
  </div>
@@ -286,12 +285,12 @@ ruby as in uses this process the options allowed are ruby and memcache
286
285
  </div>
287
286
  </div>
288
287
 
289
- <div id="method-M000058" class="method-detail">
290
- <a name="M000058"></a>
288
+ <div id="method-M000055" class="method-detail">
289
+ <a name="M000055"></a>
291
290
 
292
291
  <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;">
292
+ <a href="Config.src/M000055.html" target="Code" class="method-signature"
293
+ onclick="popupCode('Config.src/M000055.html');return false;">
295
294
  <span class="method-name">routes</span><span class="method-args">() {|config_router| ...}</span>
296
295
  </a>
297
296
  </div>
@@ -300,24 +299,6 @@ ruby as in uses this process the options allowed are ruby and memcache
300
299
  </div>
301
300
  </div>
302
301
 
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
302
 
322
303
  </div>
323
304
 
@@ -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>new (ESI::Config)</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/config.rb, line 46</span>
14
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>)
15
+ 47: <span class="ruby-ivar">@config</span> = <span class="ruby-identifier">options</span>
16
+ 48: <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>start_invalidator? (ESI::Config)</title>
8
+ <title>[] (ESI::Config)</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/esi/config.rb, line 175</span>
14
- 175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start_invalidator?</span>
15
- 176: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:invalidator</span>]
16
- 177: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/esi/config.rb, line 51</span>
14
+ 51: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
15
+ 52: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">key</span>]
16
+ 53: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -0,0 +1,35 @@
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>enable_esi_processor? (ESI::Config)</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/config.rb, line 55</span>
14
+ 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enable_esi_processor?</span>( <span class="ruby-identifier">headers</span> )
15
+ 56: <span class="ruby-comment cmt"># check for surrogate control configuration</span>
16
+ 57: <span class="ruby-comment cmt"># check for matching content type</span>
17
+ 58: <span class="ruby-comment cmt"># if both are set it surrogate takes presendence </span>
18
+ 59: <span class="ruby-identifier">use_esi</span> = <span class="ruby-keyword kw">false</span>
19
+ 60: <span class="ruby-identifier">allowed_content_types</span> = <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:allowed_content_types</span>]
20
+ 61:
21
+ 62: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">allowed_content_types</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;content-type&quot;</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">allowed_content_types</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:detect</span>)
22
+ 63: <span class="ruby-identifier">use_esi</span> = <span class="ruby-identifier">allowed_content_types</span>.<span class="ruby-identifier">detect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span><span class="ruby-operator">|</span>
23
+ 64: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;content-type&quot;</span>].<span class="ruby-identifier">match</span>( <span class="ruby-identifier">type</span> )
24
+ 65: <span class="ruby-keyword kw">end</span>
25
+ 66: <span class="ruby-identifier">use_esi</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">use_esi</span>
26
+ 67: <span class="ruby-keyword kw">end</span>
27
+ 68:
28
+ 69: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:enable_for_surrogate_only</span>]
29
+ 70: <span class="ruby-identifier">use_esi</span> = <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;surrogate-control&quot;</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-regexp re">/ESI/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;surrogate-control&quot;</span>])
30
+ 71: <span class="ruby-keyword kw">end</span>
31
+ 72:
32
+ 73: <span class="ruby-identifier">use_esi</span>
33
+ 74: <span class="ruby-keyword kw">end</span></pre>
34
+ </body>
35
+ </html>
@@ -5,14 +5,36 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>new (ESI::Config)</title>
8
+ <title>cache (ESI::Config)</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/esi/config.rb, line 45</span>
14
- 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>)
15
- 46: <span class="ruby-ivar">@config</span> = <span class="ruby-identifier">options</span>
16
- 47: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/esi/config.rb, line 105</span>
14
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cache</span>
15
+ 106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
16
+ 107: <span class="ruby-comment cmt"># allow this method to be called in config scripts</span>
17
+ 108: <span class="ruby-identifier">cache_options</span> = <span class="ruby-constant">CacheConfig</span>.<span class="ruby-identifier">new</span>
18
+ 109: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">cache_options</span>
19
+ 110: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cache_options</span>.<span class="ruby-identifier">memcached?</span>
20
+ 111: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:cache</span>] = <span class="ruby-value str">'memcached'</span>
21
+ 112: <span class="ruby-keyword kw">else</span>
22
+ 113: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:cache</span>] = <span class="ruby-value str">'ruby'</span>
23
+ 114: <span class="ruby-keyword kw">end</span>
24
+ 115: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:cache_options</span>] = <span class="ruby-identifier">cache_options</span>.<span class="ruby-identifier">options</span>
25
+ 116: <span class="ruby-keyword kw">else</span>
26
+ 117: <span class="ruby-identifier">cache_type</span> = <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:cache</span>]
27
+ 118: <span class="ruby-identifier">options</span> = <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:cache_options</span>]
28
+ 119: <span class="ruby-comment cmt"># always return the same cache object, per process</span>
29
+ 120: <span class="ruby-identifier">$cache</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cache_type</span>
30
+ 121: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'ruby'</span>
31
+ 122: <span class="ruby-constant">ESI</span><span class="ruby-operator">::</span><span class="ruby-constant">RubyCache</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
32
+ 123: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'memcached'</span>
33
+ 124: <span class="ruby-constant">ESI</span><span class="ruby-operator">::</span><span class="ruby-constant">MemcachedCache</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
34
+ 125: <span class="ruby-keyword kw">else</span>
35
+ 126: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Unsupported cache&quot;</span>
36
+ 127: <span class="ruby-keyword kw">end</span>
37
+ 128: <span class="ruby-keyword kw">end</span>
38
+ 129: <span class="ruby-keyword kw">end</span></pre>
17
39
  </body>
18
40
  </html>
@@ -5,14 +5,19 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>[] (ESI::Config)</title>
8
+ <title>esi (ESI::Config)</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/esi/config.rb, line 50</span>
14
- 50: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
15
- 51: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">key</span>]
16
- 52: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/esi/config.rb, line 131</span>
14
+ 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">esi</span>
15
+ 132: <span class="ruby-identifier">options</span> = <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>({})
16
+ 133: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">options</span>
17
+ 134: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:allowed_content_types</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">allowed_content_types</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">allowed_content_types</span>
18
+ 135: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:enable_for_surrogate_only</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">enable_for_surrogate_only</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">enable_for_surrogate_only</span>
19
+ 136: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:chunk_size</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">chunk_size</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">chunk_size</span>
20
+ 137: <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">:max_depth</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">max_depth</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">max_depth</span>
21
+ 138: <span class="ruby-keyword kw">end</span></pre>
17
22
  </body>
18
23
  </html>