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.
Files changed (202) hide show
  1. data/Rakefile +14 -6
  2. data/doc/rdoc/classes/ESI/CParser.html +122 -0
  3. data/doc/rdoc/classes/ESI/Cache.html +178 -0
  4. data/doc/rdoc/classes/ESI/Cache.src/M000085.html +17 -0
  5. data/doc/rdoc/classes/ESI/Cache.src/M000086.html +20 -0
  6. data/doc/rdoc/classes/ESI/Config.html +333 -0
  7. data/doc/rdoc/classes/ESI/Config.src/M000052.html +18 -0
  8. data/doc/rdoc/classes/ESI/Config.src/M000053.html +18 -0
  9. data/doc/rdoc/classes/ESI/Config.src/M000054.html +35 -0
  10. data/doc/rdoc/classes/ESI/Config.src/M000055.html +38 -0
  11. data/doc/rdoc/classes/ESI/Config.src/M000056.html +23 -0
  12. data/doc/rdoc/classes/ESI/Config.src/M000057.html +18 -0
  13. data/doc/rdoc/classes/ESI/Config.src/M000058.html +20 -0
  14. data/doc/rdoc/classes/ESI/Config.src/M000059.html +18 -0
  15. data/doc/rdoc/classes/ESI/Config.src/M000060.html +24 -0
  16. data/doc/rdoc/classes/ESI/Config/CacheConfig.html +212 -0
  17. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000064.html +19 -0
  18. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000065.html +19 -0
  19. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000066.html +18 -0
  20. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000067.html +18 -0
  21. data/doc/rdoc/classes/ESI/Config/CacheConfig.src/M000068.html +18 -0
  22. data/doc/rdoc/classes/ESI/Config/ConfigRouter.html +187 -0
  23. data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/M000061.html +19 -0
  24. data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/M000062.html +21 -0
  25. data/doc/rdoc/classes/ESI/Config/ConfigRouter.src/M000063.html +21 -0
  26. data/doc/rdoc/classes/ESI/Dispatcher.html +172 -0
  27. data/doc/rdoc/classes/ESI/Dispatcher.src/M000087.html +22 -0
  28. data/doc/rdoc/classes/ESI/Dispatcher.src/M000088.html +18 -0
  29. data/doc/rdoc/classes/ESI/Fragment.html +218 -0
  30. data/doc/rdoc/classes/ESI/Fragment.src/M000100.html +20 -0
  31. data/doc/rdoc/classes/ESI/Fragment.src/M000101.html +18 -0
  32. data/doc/rdoc/classes/ESI/Fragment.src/M000102.html +18 -0
  33. data/doc/rdoc/classes/ESI/Invalidator.html +131 -0
  34. data/doc/rdoc/classes/ESI/Invalidator.src/M000004.html +41 -0
  35. data/doc/rdoc/classes/ESI/Log.html +221 -0
  36. data/doc/rdoc/classes/ESI/Log.src/M000030.html +18 -0
  37. data/doc/rdoc/classes/ESI/Log.src/M000031.html +18 -0
  38. data/doc/rdoc/classes/ESI/Log.src/M000032.html +18 -0
  39. data/doc/rdoc/classes/ESI/Log.src/M000033.html +18 -0
  40. data/doc/rdoc/classes/ESI/Log.src/M000034.html +18 -0
  41. data/doc/rdoc/classes/ESI/Log.src/M000035.html +18 -0
  42. data/doc/rdoc/classes/ESI/Log.src/M000036.html +18 -0
  43. data/doc/rdoc/classes/ESI/MemcachedCache.html +314 -0
  44. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000040.html +24 -0
  45. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000041.html +22 -0
  46. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000042.html +19 -0
  47. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000043.html +23 -0
  48. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000044.html +18 -0
  49. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000045.html +19 -0
  50. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000046.html +18 -0
  51. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000047.html +18 -0
  52. data/doc/rdoc/classes/ESI/MemcachedCache.src/M000048.html +17 -0
  53. data/doc/rdoc/classes/ESI/Parser.html +184 -0
  54. data/doc/rdoc/classes/ESI/Parser.src/M000049.html +51 -0
  55. data/doc/rdoc/classes/ESI/Parser.src/M000050.html +39 -0
  56. data/doc/rdoc/classes/ESI/Parser.src/M000051.html +19 -0
  57. data/doc/rdoc/classes/ESI/Processor.html +194 -0
  58. data/doc/rdoc/classes/ESI/Processor.src/M000037.html +26 -0
  59. data/doc/rdoc/classes/ESI/Processor.src/M000038.html +44 -0
  60. data/doc/rdoc/classes/ESI/Processor.src/M000039.html +26 -0
  61. data/doc/rdoc/classes/ESI/Proxy.html +304 -0
  62. data/doc/rdoc/classes/ESI/Proxy.src/M000069.html +20 -0
  63. data/doc/rdoc/classes/ESI/Proxy.src/M000070.html +55 -0
  64. data/doc/rdoc/classes/ESI/Proxy.src/M000071.html +53 -0
  65. data/doc/rdoc/classes/ESI/Proxy.src/M000072.html +25 -0
  66. data/doc/rdoc/classes/ESI/Proxy.src/M000073.html +19 -0
  67. data/doc/rdoc/classes/ESI/Proxy.src/M000074.html +27 -0
  68. data/doc/rdoc/classes/ESI/Proxy.src/M000075.html +18 -0
  69. data/doc/rdoc/classes/ESI/Proxy.src/M000076.html +28 -0
  70. data/doc/rdoc/classes/ESI/Proxy.src/M000077.html +29 -0
  71. data/doc/rdoc/classes/ESI/Response.html +250 -0
  72. data/doc/rdoc/classes/ESI/Response.src/M000078.html +23 -0
  73. data/doc/rdoc/classes/ESI/Response.src/M000079.html +18 -0
  74. data/doc/rdoc/classes/ESI/Response.src/M000080.html +21 -0
  75. data/doc/rdoc/classes/ESI/Response.src/M000081.html +20 -0
  76. data/doc/rdoc/classes/ESI/Response.src/M000082.html +25 -0
  77. data/doc/rdoc/classes/ESI/Response.src/M000083.html +18 -0
  78. data/doc/rdoc/classes/ESI/Response.src/M000084.html +33 -0
  79. data/doc/rdoc/classes/ESI/Router.html +212 -0
  80. data/doc/rdoc/classes/ESI/Router.src/M000098.html +36 -0
  81. data/doc/rdoc/classes/ESI/Router.src/M000099.html +25 -0
  82. data/doc/rdoc/classes/ESI/RubyCache.html +278 -0
  83. data/doc/rdoc/classes/ESI/RubyCache.src/M000089.html +20 -0
  84. data/doc/rdoc/classes/ESI/RubyCache.src/M000090.html +20 -0
  85. data/doc/rdoc/classes/ESI/RubyCache.src/M000091.html +20 -0
  86. data/doc/rdoc/classes/ESI/RubyCache.src/M000092.html +22 -0
  87. data/doc/rdoc/classes/ESI/RubyCache.src/M000093.html +18 -0
  88. data/doc/rdoc/classes/ESI/RubyCache.src/M000094.html +22 -0
  89. data/doc/rdoc/classes/ESI/RubyCache.src/M000095.html +18 -0
  90. data/doc/rdoc/classes/ESI/RubyCache.src/M000096.html +18 -0
  91. data/doc/rdoc/classes/ESI/RubyCache.src/M000097.html +18 -0
  92. data/doc/rdoc/classes/ESI/Tag.html +141 -0
  93. data/doc/rdoc/classes/ESI/Tag/Attempt.html +113 -0
  94. data/doc/rdoc/classes/ESI/Tag/Base.html +237 -0
  95. data/doc/rdoc/classes/ESI/Tag/Base.src/M000026.html +23 -0
  96. data/doc/rdoc/classes/ESI/Tag/Base.src/M000027.html +22 -0
  97. data/doc/rdoc/classes/ESI/Tag/Base.src/M000028.html +22 -0
  98. data/doc/rdoc/classes/ESI/Tag/Base.src/M000029.html +17 -0
  99. data/doc/rdoc/classes/ESI/Tag/Container.html +206 -0
  100. data/doc/rdoc/classes/ESI/Tag/Container.src/M000015.html +20 -0
  101. data/doc/rdoc/classes/ESI/Tag/Container.src/M000016.html +22 -0
  102. data/doc/rdoc/classes/ESI/Tag/Container.src/M000017.html +25 -0
  103. data/doc/rdoc/classes/ESI/Tag/Except.html +184 -0
  104. data/doc/rdoc/classes/ESI/Tag/Except.src/M000018.html +21 -0
  105. data/doc/rdoc/classes/ESI/Tag/Except.src/M000019.html +20 -0
  106. data/doc/rdoc/classes/ESI/Tag/Except.src/M000020.html +18 -0
  107. data/doc/rdoc/classes/ESI/Tag/Include.html +257 -0
  108. data/doc/rdoc/classes/ESI/Tag/Include.src/M000005.html +20 -0
  109. data/doc/rdoc/classes/ESI/Tag/Include.src/M000006.html +18 -0
  110. data/doc/rdoc/classes/ESI/Tag/Include.src/M000007.html +34 -0
  111. data/doc/rdoc/classes/ESI/Tag/Include.src/M000008.html +22 -0
  112. data/doc/rdoc/classes/ESI/Tag/Include.src/M000009.html +27 -0
  113. data/doc/rdoc/classes/ESI/Tag/Include.src/M000010.html +30 -0
  114. data/doc/rdoc/classes/ESI/Tag/Include.src/M000011.html +51 -0
  115. data/doc/rdoc/classes/ESI/Tag/Include/Request.html +199 -0
  116. data/doc/rdoc/classes/ESI/Tag/Include/Request.src/M000012.html +18 -0
  117. data/doc/rdoc/classes/ESI/Tag/Include/Request.src/M000013.html +44 -0
  118. data/doc/rdoc/classes/ESI/Tag/Include/Request/Error.html +155 -0
  119. data/doc/rdoc/classes/ESI/Tag/Include/Request/Error.src/M000014.html +19 -0
  120. data/doc/rdoc/classes/ESI/Tag/Invalidate.html +171 -0
  121. data/doc/rdoc/classes/ESI/Tag/Invalidate.src/M000023.html +19 -0
  122. data/doc/rdoc/classes/ESI/Tag/Invalidate.src/M000024.html +51 -0
  123. data/doc/rdoc/classes/ESI/Tag/Invalidate.src/M000025.html +19 -0
  124. data/doc/rdoc/classes/ESI/Tag/Try.html +154 -0
  125. data/doc/rdoc/classes/ESI/Tag/Try.src/M000021.html +38 -0
  126. data/doc/rdoc/classes/ESI/Tag/Try.src/M000022.html +18 -0
  127. data/doc/rdoc/classes/MultiDirHandler.html +198 -0
  128. data/doc/rdoc/classes/MultiDirHandler.src/M000001.html +20 -0
  129. data/doc/rdoc/classes/MultiDirHandler.src/M000002.html +28 -0
  130. data/doc/rdoc/classes/MultiDirHandler.src/M000003.html +22 -0
  131. data/doc/rdoc/created.rid +1 -0
  132. data/doc/rdoc/files/COPYING.html +167 -0
  133. data/doc/rdoc/files/LICENSE.html +605 -0
  134. data/doc/rdoc/files/README.html +359 -0
  135. data/doc/rdoc/files/ext/esi/common_rl.html +160 -0
  136. data/doc/rdoc/files/ext/esi/esi_parser_c.html +101 -0
  137. data/doc/rdoc/files/ext/esi/parser_c.html +101 -0
  138. data/doc/rdoc/files/ext/esi/parser_h.html +101 -0
  139. data/doc/rdoc/files/ext/esi/parser_rl.html +827 -0
  140. data/doc/rdoc/files/ext/esi/test/common_rl.html +160 -0
  141. data/doc/rdoc/files/ext/esi/test/parser_c.html +101 -0
  142. data/doc/rdoc/files/ext/esi/test/parser_h.html +101 -0
  143. data/doc/rdoc/files/ext/esi/test/parser_rl.html +827 -0
  144. data/doc/rdoc/files/ext/esi/test/sp_c.html +101 -0
  145. data/doc/rdoc/files/ext/esi/test/test_c.html +101 -0
  146. data/doc/rdoc/files/lib/esi/cache_rb.html +119 -0
  147. data/doc/rdoc/files/lib/esi/config_rb.html +114 -0
  148. data/doc/rdoc/files/lib/esi/dispatcher_rb.html +108 -0
  149. data/doc/rdoc/files/lib/esi/invalidator_rb.html +114 -0
  150. data/doc/rdoc/files/lib/esi/logger_rb.html +108 -0
  151. data/doc/rdoc/files/lib/esi/parser_rb.html +120 -0
  152. data/doc/rdoc/files/lib/esi/processor_rb.html +115 -0
  153. data/doc/rdoc/files/lib/esi/proxy_rb.html +123 -0
  154. data/doc/rdoc/files/lib/esi/response_rb.html +116 -0
  155. data/doc/rdoc/files/lib/esi/router_rb.html +107 -0
  156. data/doc/rdoc/files/lib/esi/tag/attempt_rb.html +114 -0
  157. data/doc/rdoc/files/lib/esi/tag/base_rb.html +114 -0
  158. data/doc/rdoc/files/lib/esi/tag/container_rb.html +115 -0
  159. data/doc/rdoc/files/lib/esi/tag/except_rb.html +114 -0
  160. data/doc/rdoc/files/lib/esi/tag/include_rb.html +116 -0
  161. data/doc/rdoc/files/lib/esi/tag/invalidate_rb.html +115 -0
  162. data/doc/rdoc/files/lib/esi/tag/try_rb.html +115 -0
  163. data/doc/rdoc/files/lib/esi/version_rb.html +101 -0
  164. data/doc/rdoc/files/lib/multi_dirhandler_rb.html +109 -0
  165. data/doc/rdoc/fr_class_index.html +53 -0
  166. data/doc/rdoc/fr_file_index.html +59 -0
  167. data/doc/rdoc/fr_method_index.html +128 -0
  168. data/doc/rdoc/index.html +24 -0
  169. data/doc/rdoc/rdoc-style.css +208 -0
  170. data/ext/esi/esi_parser.c +12 -1
  171. data/ext/esi/parser.c +492 -3927
  172. data/ext/esi/parser.rl +83 -14
  173. data/ext/esi/test/parser.c +1587 -367
  174. data/ext/esi/test/parser.rl +83 -14
  175. data/ext/esi/test/sp.c +125 -0
  176. data/ext/esi/test/test.c +198 -6
  177. data/lib/esi/cache.rb +5 -8
  178. data/lib/esi/config.rb +3 -3
  179. data/lib/esi/dispatcher.rb +2 -4
  180. data/lib/esi/parser.rb +26 -13
  181. data/lib/esi/processor.rb +13 -35
  182. data/lib/esi/proxy.rb +113 -44
  183. data/lib/esi/response.rb +23 -55
  184. data/lib/esi/router.rb +0 -11
  185. data/lib/esi/tag/attempt.rb +2 -1
  186. data/lib/esi/tag/base.rb +1 -24
  187. data/lib/esi/tag/container.rb +40 -0
  188. data/lib/esi/tag/except.rb +3 -1
  189. data/lib/esi/tag/include.rb +53 -62
  190. data/lib/esi/tag/try.rb +16 -18
  191. data/lib/esi/version.rb +9 -0
  192. data/test/integration/handler_test.rb +49 -12
  193. data/test/integration/help.rb +12 -0
  194. data/test/load_test.rb +8 -4
  195. data/test/load_test_ab.rb +8 -0
  196. data/test/sample.html +31 -0
  197. data/test/unit/help.rb +12 -8
  198. data/test/unit/include_request_test.rb +14 -21
  199. data/test/unit/parser_test.rb +2 -1
  200. data/test/unit/response_test.rb +4 -8
  201. data/tools/rakehelp.rb +1 -1
  202. 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
- sh 'ragel parser.rl | rlgen-dot -p > esi.dot'
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="mongrel_esi"
103
- version="0.5.0"
107
+ name='mongrel_esi'
108
+ require File.join(File.dirname(__FILE__),'lib','esi','version')
104
109
 
105
- setup_gem(name, version) do |spec|
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}-#{version}}
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-#{version}
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( &quot;rb_thread_schedule\n&quot; );
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 =&gt; Fragment
89
+
90
+ cached? - uri,params =&gt; boolean
91
+
92
+ put - uri,params, max_age, body =&gt; 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>&nbsp;&nbsp;
114
+ <a href="#M000085">new</a>&nbsp;&nbsp;
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">&quot;X-Requested-With&quot;</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">&quot;#{uri}-#{http_x_requested_with}&quot;</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 &lt;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=&quot;ESI/1.0&quot; 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>&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;
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">&nbsp;[R]&nbsp;</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>