IOWA 1.0.0

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 (502) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTORS +14 -0
  3. data/README.md +23 -0
  4. data/RELEASE_NOTES +77 -0
  5. data/ToDo +21 -0
  6. data/components/CRUDList/CRUDList.html +13 -0
  7. data/components/CRUDList/CRUDList.iwa +136 -0
  8. data/components/Content/Content.html +0 -0
  9. data/components/Content/Content.iwa +143 -0
  10. data/components/Content/example/README +9 -0
  11. data/components/Content/example/cgi/iowa.cgi +10 -0
  12. data/components/Content/example/demo.rb +30 -0
  13. data/components/Content/example/doc/index.html +7 -0
  14. data/components/Content/example/iowa/Content.html +1 -0
  15. data/components/Content/example/iowa/Content.iwa +1 -0
  16. data/components/Content/example/iowa/Main.html +6 -0
  17. data/components/Content/example/iowa/Main.iwa +3 -0
  18. data/components/Content/example/iowa/_content/body +7 -0
  19. data/components/Content/example/iowa/_content/body2 +3 -0
  20. data/components/Content/example/iowa/_content/title +2 -0
  21. data/components/Content/example/iowa/app.cnf +8 -0
  22. data/components/Content/example/iowa/app.rb +8 -0
  23. data/components/Content/example/webrick.rb +38 -0
  24. data/components/Include/Include.html +1 -0
  25. data/components/Include/Include.iwa +30 -0
  26. data/components/Include/readme +5 -0
  27. data/components/JumpTo/JumpTo.html +8 -0
  28. data/components/JumpTo/JumpTo.iwa +8 -0
  29. data/components/JumpTo/readme +6 -0
  30. data/doc/Architecture.txt +6 -0
  31. data/doc/History.txt +33 -0
  32. data/doc/StandardDispatcher.txt +19 -0
  33. data/examples/blog/README +1 -0
  34. data/examples/hello_world/README +17 -0
  35. data/examples/hello_world/htdocs/hello_world_html.html +24 -0
  36. data/examples/hello_world/htdocs/hello_world_ruby.html +41 -0
  37. data/examples/hello_world/iowa/HelloWorld.html +14 -0
  38. data/examples/hello_world/iowa/HelloWorld.iwa +31 -0
  39. data/examples/hello_world/iowa/Index.html +16 -0
  40. data/examples/hello_world/iowa/Index.iwa +5 -0
  41. data/examples/hello_world/iowa/iowa_hello_world.cnf +19 -0
  42. data/examples/hello_world/iowa/iowa_hello_world.rb +5 -0
  43. data/examples/hello_world/iowa/mapfile.cnf +6 -0
  44. data/examples/hw1/iowa/Main.html +1 -0
  45. data/examples/hw1/iowa/README +9 -0
  46. data/examples/hw1/iowa/hw.rb +4 -0
  47. data/examples/hw2/iowa/Main.html +10 -0
  48. data/examples/hw2/iowa/Main.iwa +7 -0
  49. data/examples/hw2/iowa/README +16 -0
  50. data/examples/hw2/iowa/hw.rb +4 -0
  51. data/examples/hw3/iowa/Main.html +11 -0
  52. data/examples/hw3/iowa/Main.iwa +7 -0
  53. data/examples/hw3/iowa/README +22 -0
  54. data/examples/hw3/iowa/hw.rb +4 -0
  55. data/examples/hw4/iowa/Greetings.html +10 -0
  56. data/examples/hw4/iowa/Greetings.iwa +9 -0
  57. data/examples/hw4/iowa/Main.html +12 -0
  58. data/examples/hw4/iowa/Main.iwa +10 -0
  59. data/examples/hw4/iowa/README +28 -0
  60. data/examples/hw4/iowa/hw.rb +4 -0
  61. data/examples/hw5/iowa/Footer.html +2 -0
  62. data/examples/hw5/iowa/Greetings.html +4 -0
  63. data/examples/hw5/iowa/Greetings.iwa +12 -0
  64. data/examples/hw5/iowa/Header.html +6 -0
  65. data/examples/hw5/iowa/Main.html +12 -0
  66. data/examples/hw5/iowa/Main.iwa +13 -0
  67. data/examples/hw5/iowa/README +16 -0
  68. data/examples/hw5/iowa/hw.rb +4 -0
  69. data/examples/template_server/iowa/Content.iwa +121 -0
  70. data/examples/template_server/iowa/Content.view +0 -0
  71. data/examples/template_server/iowa/DBContentDispatcher.rb +112 -0
  72. data/examples/template_server/iowa/DBContentPage.html +3 -0
  73. data/examples/template_server/iowa/DBContentPage.iwa +85 -0
  74. data/examples/template_server/iowa/app.cnf +13 -0
  75. data/examples/template_server/iowa/app.rb +5 -0
  76. data/ext/Classifier/classifier.c +256 -0
  77. data/ext/Classifier/ext_help.h +14 -0
  78. data/ext/Classifier/extconf.rb +5 -0
  79. data/ext/Classifier/tst.h +40 -0
  80. data/ext/Classifier/tst_cleanup.c +24 -0
  81. data/ext/Classifier/tst_delete.c +146 -0
  82. data/ext/Classifier/tst_grow_node_free_list.c +38 -0
  83. data/ext/Classifier/tst_init.c +41 -0
  84. data/ext/Classifier/tst_insert.c +192 -0
  85. data/ext/Classifier/tst_search.c +68 -0
  86. data/ext/http11/README +11 -0
  87. data/ext/http11/ext_help.h +15 -0
  88. data/ext/http11/extconf.rb +5 -0
  89. data/ext/http11/http11.c +534 -0
  90. data/ext/http11/http11.c.dif +422 -0
  91. data/ext/http11/http11_parser.c +1243 -0
  92. data/ext/http11/http11_parser.c.dif +193 -0
  93. data/ext/http11/http11_parser.h +49 -0
  94. data/ext/http11/http11_parser.h.dif +20 -0
  95. data/ext/http11/http11_parser.rl +192 -0
  96. data/ext/httpmachine/Makefile +149 -0
  97. data/ext/httpmachine/extconf.rb +33 -0
  98. data/ext/httpmachine/http.cpp +430 -0
  99. data/ext/httpmachine/http.h +156 -0
  100. data/ext/httpmachine/rubyhttp.cpp +165 -0
  101. data/external/mime-types/LICENCE +18 -0
  102. data/external/mime-types/README +46 -0
  103. data/external/mime-types/doc/classes/MIME.html +120 -0
  104. data/external/mime-types/doc/classes/MIME/InvalidContentType.html +119 -0
  105. data/external/mime-types/doc/classes/MIME/Type.html +866 -0
  106. data/external/mime-types/doc/classes/MIME/Type.src/M000010.html +22 -0
  107. data/external/mime-types/doc/classes/MIME/Type.src/M000011.html +18 -0
  108. data/external/mime-types/doc/classes/MIME/Type.src/M000012.html +19 -0
  109. data/external/mime-types/doc/classes/MIME/Type.src/M000013.html +18 -0
  110. data/external/mime-types/doc/classes/MIME/Type.src/M000014.html +26 -0
  111. data/external/mime-types/doc/classes/MIME/Type.src/M000015.html +33 -0
  112. data/external/mime-types/doc/classes/MIME/Type.src/M000016.html +27 -0
  113. data/external/mime-types/doc/classes/MIME/Type.src/M000017.html +35 -0
  114. data/external/mime-types/doc/classes/MIME/Type.src/M000018.html +34 -0
  115. data/external/mime-types/doc/classes/MIME/Type.src/M000019.html +24 -0
  116. data/external/mime-types/doc/classes/MIME/Type.src/M000020.html +38 -0
  117. data/external/mime-types/doc/classes/MIME/Type.src/M000021.html +22 -0
  118. data/external/mime-types/doc/classes/MIME/Type.src/M000022.html +18 -0
  119. data/external/mime-types/doc/classes/MIME/Type.src/M000023.html +18 -0
  120. data/external/mime-types/doc/classes/MIME/Type.src/M000024.html +18 -0
  121. data/external/mime-types/doc/classes/MIME/Type.src/M000025.html +18 -0
  122. data/external/mime-types/doc/classes/MIME/Type.src/M000026.html +18 -0
  123. data/external/mime-types/doc/classes/MIME/Type.src/M000027.html +18 -0
  124. data/external/mime-types/doc/classes/MIME/Type.src/M000028.html +18 -0
  125. data/external/mime-types/doc/classes/MIME/Type.src/M000029.html +18 -0
  126. data/external/mime-types/doc/classes/MIME/Type.src/M000030.html +19 -0
  127. data/external/mime-types/doc/classes/MIME/Type.src/M000031.html +26 -0
  128. data/external/mime-types/doc/classes/MIME/Types.html +459 -0
  129. data/external/mime-types/doc/classes/MIME/Types.src/M000001.html +19 -0
  130. data/external/mime-types/doc/classes/MIME/Types.src/M000002.html +32 -0
  131. data/external/mime-types/doc/classes/MIME/Types.src/M000003.html +21 -0
  132. data/external/mime-types/doc/classes/MIME/Types.src/M000004.html +18 -0
  133. data/external/mime-types/doc/classes/MIME/Types.src/M000005.html +26 -0
  134. data/external/mime-types/doc/classes/MIME/Types.src/M000006.html +18 -0
  135. data/external/mime-types/doc/classes/MIME/Types.src/M000007.html +18 -0
  136. data/external/mime-types/doc/classes/MIME/Types.src/M000008.html +18 -0
  137. data/external/mime-types/doc/classes/MIME/Types.src/M000009.html +18 -0
  138. data/external/mime-types/doc/created.rid +1 -0
  139. data/external/mime-types/doc/files/ChangeLog.html +320 -0
  140. data/external/mime-types/doc/files/README.html +145 -0
  141. data/external/mime-types/doc/files/lib/mime/types_rb.html +101 -0
  142. data/external/mime-types/doc/fr_class_index.html +30 -0
  143. data/external/mime-types/doc/fr_file_index.html +29 -0
  144. data/external/mime-types/doc/fr_method_index.html +57 -0
  145. data/external/mime-types/doc/index.html +24 -0
  146. data/external/mime-types/doc/rdoc-style.css +208 -0
  147. data/external/mime-types/lib/mime/types.rb +1558 -0
  148. data/external/package.rb +672 -0
  149. data/external/test_support.rb +95 -0
  150. data/external/tmail/README +7 -0
  151. data/external/tmail/tmail.rb +4 -0
  152. data/external/tmail/tmail/address.rb +222 -0
  153. data/external/tmail/tmail/base64.rb +52 -0
  154. data/external/tmail/tmail/compat.rb +39 -0
  155. data/external/tmail/tmail/config.rb +50 -0
  156. data/external/tmail/tmail/encode.rb +447 -0
  157. data/external/tmail/tmail/header.rb +895 -0
  158. data/external/tmail/tmail/info.rb +14 -0
  159. data/external/tmail/tmail/loader.rb +1 -0
  160. data/external/tmail/tmail/mail.rb +869 -0
  161. data/external/tmail/tmail/mailbox.rb +386 -0
  162. data/external/tmail/tmail/mbox.rb +1 -0
  163. data/external/tmail/tmail/net.rb +260 -0
  164. data/external/tmail/tmail/obsolete.rb +123 -0
  165. data/external/tmail/tmail/parser.rb +1475 -0
  166. data/external/tmail/tmail/parser.y +372 -0
  167. data/external/tmail/tmail/port.rb +356 -0
  168. data/external/tmail/tmail/scanner.rb +17 -0
  169. data/external/tmail/tmail/scanner_r.rb +243 -0
  170. data/external/tmail/tmail/stringio.rb +256 -0
  171. data/external/tmail/tmail/textutils.rb +197 -0
  172. data/external/tmail/tmail/tmail.rb +1 -0
  173. data/external/tmail/tmail/utils.rb +23 -0
  174. data/external/win32-process/README +133 -0
  175. data/external/win32-process/lib/win32/process.rb +561 -0
  176. data/external/windows-pr/README +145 -0
  177. data/external/windows-pr/doc/conversion_guide.txt +25 -0
  178. data/external/windows-pr/lib/windows/clipboard.rb +72 -0
  179. data/external/windows-pr/lib/windows/console.rb +323 -0
  180. data/external/windows-pr/lib/windows/device_io.rb +88 -0
  181. data/external/windows-pr/lib/windows/directory.rb +80 -0
  182. data/external/windows-pr/lib/windows/error.rb +313 -0
  183. data/external/windows-pr/lib/windows/eventlog.rb +120 -0
  184. data/external/windows-pr/lib/windows/file.rb +349 -0
  185. data/external/windows-pr/lib/windows/filesystem.rb +16 -0
  186. data/external/windows-pr/lib/windows/handle.rb +31 -0
  187. data/external/windows-pr/lib/windows/library.rb +76 -0
  188. data/external/windows-pr/lib/windows/limits.rb +13 -0
  189. data/external/windows-pr/lib/windows/memory.rb +117 -0
  190. data/external/windows-pr/lib/windows/msvcrt/buffer.rb +48 -0
  191. data/external/windows-pr/lib/windows/msvcrt/file.rb +18 -0
  192. data/external/windows-pr/lib/windows/msvcrt/string.rb +46 -0
  193. data/external/windows-pr/lib/windows/national.rb +557 -0
  194. data/external/windows-pr/lib/windows/path.rb +296 -0
  195. data/external/windows-pr/lib/windows/pipe.rb +77 -0
  196. data/external/windows-pr/lib/windows/process.rb +171 -0
  197. data/external/windows-pr/lib/windows/registry.rb +238 -0
  198. data/external/windows-pr/lib/windows/security.rb +89 -0
  199. data/external/windows-pr/lib/windows/service.rb +183 -0
  200. data/external/windows-pr/lib/windows/shell.rb +88 -0
  201. data/external/windows-pr/lib/windows/sound.rb +52 -0
  202. data/external/windows-pr/lib/windows/synchronize.rb +161 -0
  203. data/external/windows-pr/lib/windows/system_info.rb +70 -0
  204. data/external/windows-pr/lib/windows/unicode.rb +138 -0
  205. data/external/windows-pr/lib/windows/window.rb +22 -0
  206. data/iowa.gemspec +45 -0
  207. data/microprojects/DiskCache/LICENSE +28 -0
  208. data/microprojects/DiskCache/README +17 -0
  209. data/microprojects/DiskCache/external/package.rb +608 -0
  210. data/microprojects/DiskCache/external/test_support.rb +8 -0
  211. data/microprojects/DiskCache/setup.rb +22 -0
  212. data/microprojects/DiskCache/src/iowa/Association.rb +67 -0
  213. data/microprojects/DiskCache/src/iowa/Constants.rb +159 -0
  214. data/microprojects/DiskCache/src/iowa/DiskStore.rb +377 -0
  215. data/microprojects/DiskCache/src/iowa/Hash.rb +63 -0
  216. data/microprojects/DiskCache/src/iowa/Lockfile.rb +575 -0
  217. data/microprojects/DiskCache/src/iowa/Mutex.rb +142 -0
  218. data/microprojects/DiskCache/src/iowa/caches/DiskCache.rb +605 -0
  219. data/microprojects/DiskCache/src/iowa/caches/LRUCache.rb +287 -0
  220. data/microprojects/DiskCache/test/TC_DiskCache.rb +218 -0
  221. data/microprojects/LRUCache/LICENSE +28 -0
  222. data/microprojects/LRUCache/README +13 -0
  223. data/microprojects/LRUCache/external/package.rb +608 -0
  224. data/microprojects/LRUCache/external/test_support.rb +8 -0
  225. data/microprojects/LRUCache/setup.rb +22 -0
  226. data/microprojects/LRUCache/src/iowa/Association.rb +57 -0
  227. data/microprojects/LRUCache/src/iowa/Constants.rb +159 -0
  228. data/microprojects/LRUCache/src/iowa/Hash.rb +63 -0
  229. data/microprojects/LRUCache/src/iowa/Mutex.rb +129 -0
  230. data/microprojects/LRUCache/src/iowa/caches/LRUCache.rb +287 -0
  231. data/microprojects/LRUCache/test/TC_LRUCache.rb +65 -0
  232. data/microprojects/LinkedList/LICENSE +28 -0
  233. data/microprojects/LinkedList/README +13 -0
  234. data/microprojects/LinkedList/external/package.rb +608 -0
  235. data/microprojects/LinkedList/external/test_support.rb +8 -0
  236. data/microprojects/LinkedList/setup.rb +22 -0
  237. data/microprojects/LinkedList/src/iowa/LinkedList.rb +165 -0
  238. data/microprojects/LinkedList/test/TC_LinkedList.rb +42 -0
  239. data/microprojects/README +8 -0
  240. data/setup.rb +116 -0
  241. data/share/iowa/app_skeleton/Main.html +8 -0
  242. data/share/iowa/app_skeleton/Main.iwa +15 -0
  243. data/share/iowa/app_skeleton/app.cnf +48 -0
  244. data/share/iowa/app_skeleton/app.rb +58 -0
  245. data/share/iowa/app_skeleton/models/model.rb +49 -0
  246. data/src/ihc.rb +223 -0
  247. data/src/iowa.cgi +29 -0
  248. data/src/iowa.rb +637 -0
  249. data/src/iowa/AbstractCache.rb +96 -0
  250. data/src/iowa/AcceptLanguage.rb +76 -0
  251. data/src/iowa/Application.rb +928 -0
  252. data/src/iowa/ApplicationStats.rb +72 -0
  253. data/src/iowa/Association.rb +67 -0
  254. data/src/iowa/BindingsParser.rb +62 -0
  255. data/src/iowa/Breakpoint.rb +273 -0
  256. data/src/iowa/CSS.rb +564 -0
  257. data/src/iowa/Client.rb +192 -0
  258. data/src/iowa/Component.rb +405 -0
  259. data/src/iowa/ComponentProxy.rb +26 -0
  260. data/src/iowa/Config.rb +21 -0
  261. data/src/iowa/Constants.rb +226 -0
  262. data/src/iowa/Context.rb +218 -0
  263. data/src/iowa/ContextLogger.rb +16 -0
  264. data/src/iowa/DbPool.rb +222 -0
  265. data/src/iowa/DetachedComponent.rb +18 -0
  266. data/src/iowa/Dispatcher.rb +27 -0
  267. data/src/iowa/DynamicElements.rb +471 -0
  268. data/src/iowa/Element.rb +100 -0
  269. data/src/iowa/Email.rb +287 -0
  270. data/src/iowa/Extensions/AllExtensions.rb +4 -0
  271. data/src/iowa/Extensions/Class.rb +94 -0
  272. data/src/iowa/Extensions/Date.rb +88 -0
  273. data/src/iowa/Extensions/DateTime.rb +88 -0
  274. data/src/iowa/Extensions/Hash.rb +22 -0
  275. data/src/iowa/Extensions/Kernel.rb +6 -0
  276. data/src/iowa/Extensions/Numeric.rb +47 -0
  277. data/src/iowa/Extensions/Object.rb +11 -0
  278. data/src/iowa/Extensions/String.rb +60 -0
  279. data/src/iowa/Extensions/Time.rb +89 -0
  280. data/src/iowa/Extensions/TimeExtensions.rb +6 -0
  281. data/src/iowa/Form.rb +368 -0
  282. data/src/iowa/Hash.rb +85 -0
  283. data/src/iowa/ISAAC.rb +175 -0
  284. data/src/iowa/ImageSize.rb +279 -0
  285. data/src/iowa/IowaComponentMixins.rb +7 -0
  286. data/src/iowa/JSON-lexer.rb +296 -0
  287. data/src/iowa/JSON-objects.rb +201 -0
  288. data/src/iowa/KeyValueCoding.rb +91 -0
  289. data/src/iowa/LinkedList.rb +175 -0
  290. data/src/iowa/Loader.rb +22 -0
  291. data/src/iowa/Lockfile.rb +575 -0
  292. data/src/iowa/Logger.rb +74 -0
  293. data/src/iowa/Monkey.rb +20 -0
  294. data/src/iowa/Mutex.rb +142 -0
  295. data/src/iowa/Policy.rb +70 -0
  296. data/src/iowa/Pool.rb +243 -0
  297. data/src/iowa/PrettyException.rb +1091 -0
  298. data/src/iowa/Request.rb +244 -0
  299. data/src/iowa/Response.rb +133 -0
  300. data/src/iowa/Session.rb +354 -0
  301. data/src/iowa/SessionStats.rb +78 -0
  302. data/src/iowa/String.rb +65 -0
  303. data/src/iowa/Tag.rb +101 -0
  304. data/src/iowa/TemplateParser.rb +236 -0
  305. data/src/iowa/Util.rb +314 -0
  306. data/src/iowa/Webcache.rb +122 -0
  307. data/src/iowa/caches/BiLevelCache.rb +65 -0
  308. data/src/iowa/caches/ClassLimitedCache.rb +67 -0
  309. data/src/iowa/caches/DiskCache.rb +609 -0
  310. data/src/iowa/caches/DiskStore.rb +380 -0
  311. data/src/iowa/caches/LRUCache-alternative.rb +155 -0
  312. data/src/iowa/caches/LRUCache.rb +290 -0
  313. data/src/iowa/caches/SimpleLRUCache.rb +112 -0
  314. data/src/iowa/dispatchers/StandardDispatcher.rb +396 -0
  315. data/src/iowa/dispatchers/StandardDispatcherWithClassifier.rb +93 -0
  316. data/src/iowa/js/iowa_jsonrpc.js +381 -0
  317. data/src/iowa/js/jsonrpc.js +187 -0
  318. data/src/iowa/js/jsonrpc_async.js +261 -0
  319. data/src/iowa/loaders/DiskLoader.rb +50 -0
  320. data/src/iowa/loggers/Analogger.rb +54 -0
  321. data/src/iowa/loggers/AsyncLogger.rb +54 -0
  322. data/src/iowa/loggers/BitBucket.rb +38 -0
  323. data/src/iowa/loggers/Log4R.rb +13 -0
  324. data/src/iowa/loggers/Log4rLogger.rb +48 -0
  325. data/src/iowa/loggers/Logger.rb +29 -0
  326. data/src/iowa/loggers/RubyLogger.rb +9 -0
  327. data/src/iowa/pools/DBConnectionPool.rb +53 -0
  328. data/src/iowa/request/Apache.rb +90 -0
  329. data/src/iowa/request/EMHybrid.rb +59 -0
  330. data/src/iowa/request/ENV.rb +80 -0
  331. data/src/iowa/request/FCGI.rb +68 -0
  332. data/src/iowa/request/HTTPMachine.rb +75 -0
  333. data/src/iowa/request/Mongrel.rb +68 -0
  334. data/src/iowa/request/WEBrick.rb +48 -0
  335. data/src/iowa/version.rb +3 -0
  336. data/src/iowa/webrick/HTTPServer.rb +43 -0
  337. data/src/iowa/webrick/WEBrickServlet.rb +28 -0
  338. data/src/iowa_fcgi_handler.rb +101 -0
  339. data/src/iowa_httpmachine.rb +141 -0
  340. data/src/iowa_hybrid.rb +193 -0
  341. data/src/iowa_hybrid_cluster.rb +231 -0
  342. data/src/iowa_mongrel.rb +136 -0
  343. data/src/iowa_webrick.rb +194 -0
  344. data/src/iowa_webrick_legacy.rb +104 -0
  345. data/src/mod_iowa.rb +104 -0
  346. data/tcss.rb +61 -0
  347. data/test/README.windows +12 -0
  348. data/test/TC_AcceptLanguage.rb +61 -0
  349. data/test/TC_AppConfig.rb +43 -0
  350. data/test/TC_AppConfig/cgi/iowa.cgi +7 -0
  351. data/test/TC_AppConfig/doc/index.html +1 -0
  352. data/test/TC_AppConfig/iowa/Main.html +4 -0
  353. data/test/TC_AppConfig/iowa/Main.iwa +17 -0
  354. data/test/TC_AppConfig/iowa/README +1 -0
  355. data/test/TC_AppConfig/iowa/app.cnf +19 -0
  356. data/test/TC_AppConfig/iowa/app.rb +8 -0
  357. data/test/TC_AppConfig/webrick.rb +38 -0
  358. data/test/TC_Association.rb +29 -0
  359. data/test/TC_BiLevelCache.rb +71 -0
  360. data/test/TC_CGI_Adaptor.rb +55 -0
  361. data/test/TC_CGI_Adaptor/cgi/iowa.cgi +7 -0
  362. data/test/TC_CGI_Adaptor/doc/index.html +1 -0
  363. data/test/TC_CGI_Adaptor/iowa/Main.html +8 -0
  364. data/test/TC_CGI_Adaptor/iowa/Main.iwa +14 -0
  365. data/test/TC_CGI_Adaptor/iowa/README +1 -0
  366. data/test/TC_CGI_Adaptor/iowa/app.cnf +8 -0
  367. data/test/TC_CGI_Adaptor/iowa/app.rb +8 -0
  368. data/test/TC_CGI_Adaptor/webrick.rb +38 -0
  369. data/test/TC_CSS.rb +660 -0
  370. data/test/TC_ClassLimitedCache.rb +89 -0
  371. data/test/TC_Classifier.rb +80 -0
  372. data/test/TC_DbPool.rb +127 -0
  373. data/test/TC_DiskCache.rb +218 -0
  374. data/test/TC_Hybrid.rb +58 -0
  375. data/test/TC_Hybrid/doc/thing.txt +1 -0
  376. data/test/TC_Hybrid/iowa/Main.html +3 -0
  377. data/test/TC_Hybrid/iowa/Main.iwa +7 -0
  378. data/test/TC_Hybrid/iowa/NewPage.html +1 -0
  379. data/test/TC_Hybrid/iowa/NewPage.iwa +5 -0
  380. data/test/TC_Hybrid/iowa/app.cnf +10 -0
  381. data/test/TC_Hybrid/iowa/app.rb +5 -0
  382. data/test/TC_IOWAFunctions/doc/Ajax1.html +1 -0
  383. data/test/TC_IOWAFunctions/doc/Ajax1.iwa +1 -0
  384. data/test/TC_IOWAFunctions/doc/index.html +1 -0
  385. data/test/TC_IOWAFunctions/doc/js/dojo.js +9686 -0
  386. data/test/TC_IOWAFunctions/iowa/Ajax1.html +40 -0
  387. data/test/TC_IOWAFunctions/iowa/Ajax1.iwa +23 -0
  388. data/test/TC_IOWAFunctions/iowa/AjaxWidget.iwa +19 -0
  389. data/test/TC_IOWAFunctions/iowa/AjaxWidget.view +22 -0
  390. data/test/TC_IOWAFunctions/iowa/DanielTest.html +9 -0
  391. data/test/TC_IOWAFunctions/iowa/DanielTest.iwa +10 -0
  392. data/test/TC_IOWAFunctions/iowa/IntervalWidget.html +1 -0
  393. data/test/TC_IOWAFunctions/iowa/IntervalWidget.iwa +14 -0
  394. data/test/TC_IOWAFunctions/iowa/Main.html +1 -0
  395. data/test/TC_IOWAFunctions/iowa/NestedRepeat1.html +12 -0
  396. data/test/TC_IOWAFunctions/iowa/NestedRepeat1.iwa +24 -0
  397. data/test/TC_IOWAFunctions/iowa/RPCResponse.iwa +7 -0
  398. data/test/TC_IOWAFunctions/iowa/RPCResponse.view +1 -0
  399. data/test/TC_IOWAFunctions/iowa/Repeat1.iwa +31 -0
  400. data/test/TC_IOWAFunctions/iowa/Repeat1.view +9 -0
  401. data/test/TC_IOWAFunctions/iowa/Repeat2.iwa +32 -0
  402. data/test/TC_IOWAFunctions/iowa/Repeat2.view +11 -0
  403. data/test/TC_IOWAFunctions/iowa/Repeat3.iwa +44 -0
  404. data/test/TC_IOWAFunctions/iowa/Repeat3.view +18 -0
  405. data/test/TC_IOWAFunctions/iowa/TesCon.html +1 -0
  406. data/test/TC_IOWAFunctions/iowa/TesCon.iwa +5 -0
  407. data/test/TC_IOWAFunctions/iowa/app.cnf +19 -0
  408. data/test/TC_IOWAFunctions/iowa/app.rb +9 -0
  409. data/test/TC_IOWAFunctions/iowa/mapfile.cnf +8 -0
  410. data/test/TC_ISAAC.rb +52 -0
  411. data/test/TC_ImageSize.rb +84 -0
  412. data/test/TC_ImageSize/img.bmp +0 -0
  413. data/test/TC_ImageSize/img.gif +0 -0
  414. data/test/TC_ImageSize/img.jpg +0 -0
  415. data/test/TC_ImageSize/img.pcx +0 -0
  416. data/test/TC_ImageSize/img.pgm +7144 -0
  417. data/test/TC_ImageSize/img.png +0 -0
  418. data/test/TC_ImageSize/img.ppm +0 -0
  419. data/test/TC_ImageSize/img.psd +0 -0
  420. data/test/TC_ImageSize/img.tiff +0 -0
  421. data/test/TC_ImageSize/img.xbm +22 -0
  422. data/test/TC_KeyValueCoding.rb +35 -0
  423. data/test/TC_LRUCache.rb +296 -0
  424. data/test/TC_LinkedList.rb +46 -0
  425. data/test/TC_Lockfile.rb +106 -0
  426. data/test/TC_Minimal.rb +45 -0
  427. data/test/TC_Minimal/app.cnf +8 -0
  428. data/test/TC_Minimal/cgi-bin/iowa.cgi +11 -0
  429. data/test/TC_Minimal/doc/index.html +1 -0
  430. data/test/TC_Minimal/iowa/Main.html +1 -0
  431. data/test/TC_Minimal/iowa/README +1 -0
  432. data/test/TC_Minimal/iowa/app.rb +3 -0
  433. data/test/TC_Minimal/webrick.rb +38 -0
  434. data/test/TC_Mongrel.rb +58 -0
  435. data/test/TC_Mongrel/doc/thing.txt +1 -0
  436. data/test/TC_Mongrel/iowa/Main.html +3 -0
  437. data/test/TC_Mongrel/iowa/Main.iwa +7 -0
  438. data/test/TC_Mongrel/iowa/NewPage.html +1 -0
  439. data/test/TC_Mongrel/iowa/NewPage.iwa +5 -0
  440. data/test/TC_Mongrel/iowa/app.cnf +10 -0
  441. data/test/TC_Mongrel/iowa/app.rb +5 -0
  442. data/test/TC_NoSubclass.rb +56 -0
  443. data/test/TC_NoSubclass/cgi/iowa.cgi +7 -0
  444. data/test/TC_NoSubclass/doc/index.html +1 -0
  445. data/test/TC_NoSubclass/iowa/Main.html +8 -0
  446. data/test/TC_NoSubclass/iowa/Main.iwa +14 -0
  447. data/test/TC_NoSubclass/iowa/README +1 -0
  448. data/test/TC_NoSubclass/iowa/app.cnf +8 -0
  449. data/test/TC_NoSubclass/iowa/app.rb +5 -0
  450. data/test/TC_NoSubclass/webrick.rb +38 -0
  451. data/test/TC_Pool.rb +139 -0
  452. data/test/TC_RenderedCache/doc/thing.txt +1 -0
  453. data/test/TC_RenderedCache/iowa/BigPage.html +1 -0
  454. data/test/TC_RenderedCache/iowa/BigPage.iwa +12 -0
  455. data/test/TC_RenderedCache/iowa/Main.html +3 -0
  456. data/test/TC_RenderedCache/iowa/Main.iwa +7 -0
  457. data/test/TC_RenderedCache/iowa/NewPage.html +1 -0
  458. data/test/TC_RenderedCache/iowa/NewPage.iwa +11 -0
  459. data/test/TC_RenderedCache/iowa/app.cnf +13 -0
  460. data/test/TC_RenderedCache/iowa/app.rb +5 -0
  461. data/test/TC_RenderedCache/iowa/mapfile.map +4 -0
  462. data/test/TC_ResourceURL.rb +73 -0
  463. data/test/TC_ResourceURL/iowa/Main.html +2 -0
  464. data/test/TC_ResourceURL/iowa/Main.iwa +10 -0
  465. data/test/TC_ResourceURL/iowa/app.cnf +10 -0
  466. data/test/TC_ResourceURL/iowa/app.rb +5 -0
  467. data/test/TC_SimpleDetached.rb +41 -0
  468. data/test/TC_StandardDispatcher.rb +362 -0
  469. data/test/TC_StandardDispatcherWithClassifier.rb +358 -0
  470. data/test/TC_String.rb +24 -0
  471. data/test/TC_Tag.rb +41 -0
  472. data/test/TC_Webrick.rb +56 -0
  473. data/test/TC_Webrick/doc/thing.txt +1 -0
  474. data/test/TC_Webrick/iowa/Main.html +3 -0
  475. data/test/TC_Webrick/iowa/Main.iwa +7 -0
  476. data/test/TC_Webrick/iowa/NewPage.html +1 -0
  477. data/test/TC_Webrick/iowa/NewPage.iwa +5 -0
  478. data/test/TC_Webrick/iowa/app.cnf +10 -0
  479. data/test/TC_Webrick/iowa/app.rb +5 -0
  480. data/test/tc_template.rb +15 -0
  481. data/test/tests.conf +19 -0
  482. data/utils/CVS/Entries +3 -0
  483. data/utils/CVS/Repository +1 -0
  484. data/utils/CVS/Root +1 -0
  485. data/utils/QuickCert-1.0.2.tar.gz +0 -0
  486. data/utils/QuickCert-1.0.2/InstalledFiles +7 -0
  487. data/utils/QuickCert-1.0.2/MANIFEST +10 -0
  488. data/utils/QuickCert-1.0.2/Makefile +15 -0
  489. data/utils/QuickCert-1.0.2/README +56 -0
  490. data/utils/QuickCert-1.0.2/bin/QuickCert +355 -0
  491. data/utils/QuickCert-1.0.2/config.save +12 -0
  492. data/utils/QuickCert-1.0.2/data/examples/ruby/QuickCert/README +60 -0
  493. data/utils/QuickCert-1.0.2/data/examples/ruby/QuickCert/drbssl_c.rb +26 -0
  494. data/utils/QuickCert-1.0.2/data/examples/ruby/QuickCert/drbssl_s.rb +35 -0
  495. data/utils/QuickCert-1.0.2/data/examples/ruby/QuickCert/qc_config +21 -0
  496. data/utils/QuickCert-1.0.2/lib/QuickCert/defaults.rb +28 -0
  497. data/utils/QuickCert-1.0.2/setup.rb +1312 -0
  498. data/utils/iowa_apps +422 -0
  499. data/utils/smtp_sink.rb +9 -0
  500. data/utils/startup_template.cnf +27 -0
  501. data/utils/startup_template.rb +73 -0
  502. metadata +551 -0
@@ -0,0 +1,8 @@
1
+ module IWATestSupport
2
+
3
+ def self.cd_to_test_dir(dir)
4
+ Dir.chdir(File.dirname(File.expand_path(dir)))
5
+ end
6
+
7
+ end
8
+
@@ -0,0 +1,22 @@
1
+ #!ruby
2
+
3
+ basedir = File.dirname(__FILE__)
4
+ $:.push(basedir)
5
+
6
+ require 'external/package'
7
+ require 'rbconfig'
8
+ begin
9
+ require 'rubygems'
10
+ rescue LoadError
11
+ end
12
+
13
+ Dir.chdir(basedir)
14
+ Package.setup("1.0") {
15
+ name "Iowa::LinkedList"
16
+
17
+ translate(:lib, 'src/' => '')
18
+ lib *Dir["src/iowa/**/*.rb"]
19
+ ri "src/iowa/LinkedList.rb"
20
+
21
+ unit_test ["test/TC_LinkedList.rb"]
22
+ }
@@ -0,0 +1,165 @@
1
+ require 'enumerator'
2
+
3
+ # This is a simple linked list implementation with efficient random
4
+ # access of data elements. It was inspired by George Moscovitis'
5
+ # LRUCache implementation found in Facets 1.7.30, but unlike the
6
+ # linked list in that cache, this one does not require the use of a
7
+ # mixin on any class to be stored. The linked list provides the
8
+ # push, pop, shift, unshift, first, last, delete and length methods
9
+ # which work just like their namesakes in the Array class, but it
10
+ # also supports setting and retrieving values by key, just like a
11
+ # hash.
12
+
13
+ module Iowa
14
+ class LinkedList
15
+ include Enumerable
16
+
17
+ # Represents a single node of the linked list.
18
+
19
+ class Node
20
+ attr_accessor :key, :value, :prev_node, :next_node
21
+
22
+ def initialize(key=nil,value=nil,prev_node=nil,next_node=nil)
23
+ @key = key
24
+ @value = value
25
+ @prev_node = prev_node
26
+ @next_node = next_node
27
+ end
28
+ end
29
+
30
+ def initialize
31
+ @head = Node.new
32
+ @tail = Node.new
33
+ @lookup = Hash.new
34
+ node_join(@head,@tail)
35
+ end
36
+
37
+ def [](v)
38
+ @lookup[v].value
39
+ end
40
+
41
+ def []=(k,v)
42
+ if @lookup.has_key?(k)
43
+ @lookup[k].value = v
44
+ else
45
+ n = Node.new(k,v,@head,@head.next_node)
46
+ node_join(n,@head.next_node)
47
+ node_join(@head,n)
48
+ @lookup[k] = n
49
+ end
50
+ v
51
+ end
52
+
53
+ def empty?
54
+ @lookup.empty?
55
+ end
56
+
57
+ def delete(k)
58
+ n = @lookup.delete(k)
59
+ v = n ? node_purge(n) : nil
60
+ v
61
+ end
62
+
63
+ def first
64
+ @head.next_node.value
65
+ end
66
+
67
+ def last
68
+ @tail.prev_node.value
69
+ end
70
+
71
+ def shift
72
+ k = @head.next_node.key
73
+ n = @lookup.delete(k)
74
+ node_delete(n) if n
75
+ end
76
+
77
+ def unshift(v)
78
+ if @lookup.has_key?(v)
79
+ n = @lookup[v]
80
+ node_delete(n)
81
+ node_join(n,@head.next_node)
82
+ node_join(@head,n)
83
+ else
84
+ n = Node.new(v,v,@head,@head.next_node)
85
+ node_join(n,@head.next_node)
86
+ node_join(@head,n)
87
+ @lookup[v] = n
88
+ end
89
+ v
90
+ end
91
+
92
+ def pop
93
+ k = @tail.prev_node.key
94
+ n = @lookup.delete(k)
95
+ node_delete(n) if n
96
+ end
97
+
98
+ def push(v)
99
+ if @lookup.has_key?(v)
100
+ n = @lookup[v]
101
+ node_delete(n)
102
+ node_join(@tail.prev_node,n)
103
+ node_join(n,@tail)
104
+ else
105
+ n = Node.new(v,v,@tail.prev_node,@tail)
106
+ node_join(@tail.prev_node,n)
107
+ node_join(n,@tail)
108
+ @lookup[v] = n
109
+ end
110
+ v
111
+ end
112
+
113
+ def queue
114
+ r = []
115
+ n = @head
116
+ while (n = n.next_node) and n != @tail
117
+ r << n.key
118
+ end
119
+ r
120
+ end
121
+
122
+ def to_a
123
+ r = []
124
+ n = @head
125
+ while (n = n.next_node) and n != @tail
126
+ r << n.value
127
+ end
128
+ r
129
+ end
130
+
131
+ def length
132
+ @lookup.length
133
+ end
134
+
135
+ def each
136
+ n = @head
137
+ while (n = n.next_node) and n != @tail
138
+ yield(n.key,n.value)
139
+ end
140
+ end
141
+
142
+ private
143
+
144
+ def node_delete(n)
145
+ node_join(n.prev_node,n.next_node)
146
+ v = n.value
147
+ end
148
+
149
+ def node_purge(n)
150
+ node_join(n.prev_node,n.next_node)
151
+ v = n.value
152
+ n.value = nil
153
+ n.key = nil
154
+ n.next_node = nil
155
+ n.prev_node = nil
156
+ v
157
+ end
158
+
159
+ def node_join(a,b)
160
+ a.next_node = b
161
+ b.prev_node = a
162
+ end
163
+
164
+ end
165
+ end
@@ -0,0 +1,42 @@
1
+ require 'external/test_support'
2
+ IWATestSupport.cd_to_test_dir(__FILE__)
3
+
4
+ require 'test/unit'
5
+ $:.unshift '../src'
6
+ require 'iowa/LinkedList'
7
+
8
+
9
+ class TC_LinkedList < Test::Unit::TestCase
10
+ @cache
11
+
12
+ def test_all
13
+ ll = nil
14
+ assert_nothing_raised('Failed while creating an Iowa::LinkedList object.') { ll = Iowa::LinkedList.new }
15
+ assert_kind_of(Iowa::LinkedList,ll,'Strangely, the created object does not appear to be an Iowa::LinkedList.')
16
+
17
+ assert_nothing_raised('Failed while pushing a value onto the linked list.') { ll.push 'a' }
18
+ ll.push 'b'
19
+ assert_nothing_raised('Failed while assigning a key/value to the linked list.') { ll['c'] = 3 }
20
+ assert_equal(3,ll.first, 'First element in the linked list appears to be the wrong one.')
21
+ assert_equal('b',ll.last, 'Last element in the linked list appears to be the wrong one.')
22
+ assert_nothing_raised('Failed while unshifting a value onto the linked list.') { ll.unshift 'd' }
23
+ assert_equal('d',ll.first, 'The prior unshift apparently failed.')
24
+ assert_equal('a',ll['a'], 'Accessing an element by key failed.')
25
+ assert_equal(4,ll.length, 'The length of the linked list appears to be incorrect.')
26
+ d = nil
27
+ assert_nothing_raised('Failed while deleting an element from the middle of the list.') { d = ll.delete('a') }
28
+ assert_equal('a',d, 'The prior delete returned the wrong value for the deleted object.')
29
+ assert_equal(3,ll.length, 'The length of the linked list appears to be incorrect following the prior deletion.')
30
+ assert_nothing_raised('Failed while popping an element from the end of the list.') { d = ll.pop }
31
+ assert_equal('b',d, 'The prior pop returned the wrong value.')
32
+ assert_equal(2,ll.length, 'The length of the linked list appears to be incorrect following the prior pop.')
33
+ assert_equal(['d','c'],ll.queue, 'The queue of keys for the list is incorrect.')
34
+ assert_equal(['d',3],ll.to_a, 'Converting the list to an array (of values) seems to have failed.')
35
+ expected = [['c',3],['d','d']]
36
+ ll.each do |k,v|
37
+ e = expected.pop
38
+ assert_equal(e,[k,v], 'While iterates over the list via each(), the value from this iteration is not what was expected.')
39
+ end
40
+ end
41
+
42
+ end
@@ -0,0 +1,8 @@
1
+ These are standalone versions of pieces of IOWA that may be useful on their
2
+ own. Here is where you will find them. Each is self contained and does
3
+ not require IOWA to be installed in order to operate.
4
+
5
+ Each project is still being kept within the Iowa namespace so that the
6
+ potential for a namespace collision is reduced. I recognize that this
7
+ means a few extra keystrokes are required to use one of these, but I
8
+ feel the protection against namespace trainwrecks is worth it.
@@ -0,0 +1,116 @@
1
+ #!ruby
2
+
3
+ basedir = File.dirname(__FILE__)
4
+ $:.push(basedir)
5
+
6
+ require 'external/package'
7
+ require 'rbconfig'
8
+ begin
9
+ require 'rubygems'
10
+ rescue LoadError
11
+ end
12
+
13
+ Dir.chdir(basedir)
14
+ Package.setup("1.0") {
15
+ name "IOWA"
16
+
17
+ build_ext "http11"
18
+ translate(:ext, 'ext/http11/' => 'iowa/')
19
+ ext "ext/http11/http11.so"
20
+
21
+ build_ext "Classifier"
22
+ translate(:ext, 'ext/Classifier/' => 'iowa/')
23
+ ext "ext/Classifier/classifier.so"
24
+
25
+ translate(:lib, 'src/' => '')
26
+ lib ["src/iowa.rb","src/iowa_webrick.rb","src/iowa_mongrel.rb","src/iowa_httpmachine.rb","src/iowa_hybrid.rb","src/iowa_hybrid_cluster.rb"]
27
+ lib(*Dir["src/iowa/**/*.rb"])
28
+ lib "src/mod_iowa.rb" => "apache/mod_iowa.rb"
29
+ ri(*Dir["src/iowa/**/*.rb"])
30
+ ri ["src/iowa.rb","src/iowa_webrick.rb","src/iowa_mongrel.rb","src/iowa_httpmachine.rb","src/iowa_hybrid.rb","src/iowa_hybrid_cluster.rb","src/mod_iowa.rb"]
31
+
32
+ begin
33
+ require 'tmail'
34
+ rescue LoadError
35
+ # No tmail; install ours.
36
+ translate(:lib, 'external/tmail/' => '')
37
+ lib(*Dir["external/tmail/**/*.rb"])
38
+ lib 'external/tmail/tmail/parser.y'
39
+ ri ["external/tmail/tmail.rb","external/tmail/tmail"]
40
+ end
41
+
42
+ begin
43
+ require 'mime-types'
44
+ rescue LoadError
45
+ # No mime-types; install the bundled one.
46
+ translate(:lib, 'external/mime-types/lib/' => '')
47
+ lib(*Dir["external/mime-types/lib/**/*"])
48
+ ri ["external/mime-types/lib"]
49
+ translate(:doc, 'external/mime-types/doc/' => 'mime-types/')
50
+ doc(*Dir["external/mime-types/doc/**/*"])
51
+ end
52
+
53
+ if /win/ == RbConfig::CONFIG['host_os']
54
+ begin
55
+ require 'windows/process'
56
+ rescue LoadError
57
+ # No windows-pr package; install bundled one.
58
+ translate(:lib, 'external/windows-pr/lib/' => '')
59
+ lib(*Dir["external/windows-pr/lib/**/*"])
60
+ ri ["external/windows-pr/lib"]
61
+ translate(:doc, 'external/windows-pr/doc/' => 'windows-pr/')
62
+ doc(*Dir["external/windows-pr/doc/**/*"])
63
+
64
+ $:.push File.join(basedir,'external/windows-pr/lib')
65
+ require 'windows/error'
66
+ require 'windows/process'
67
+ require 'windows/synchronize'
68
+ require 'windows/handle'
69
+ require 'windows/library'
70
+ require 'windows/console'
71
+ require 'windows/window'
72
+
73
+ end
74
+ begin
75
+ require 'win32/process'
76
+ rescue LoadError
77
+ # Now win32-process package; install bundled one.
78
+ translate(:lib, 'external/win32-process/lib/' => '')
79
+ lib(*Dir["external/win32-process/lib/**/*"])
80
+ ri ["external/win32-process/lib"]
81
+
82
+ $:.push File.join(basedir,'external/win32-process/lib')
83
+ require 'win32/process'
84
+ end
85
+ end
86
+
87
+ # Wrong. Fix this.
88
+ bin "src/iowa_fcgi_handler.rb"
89
+
90
+ unit_test "test/TC_CSS.rb"
91
+ unit_test "test/TC_AcceptLanguage.rb"
92
+ unit_test "test/TC_AppConfig.rb"
93
+ unit_test "test/TC_Association.rb"
94
+ unit_test "test/TC_BiLevelCache.rb"
95
+ unit_test "test/TC_CGI_Adaptor.rb"
96
+ unit_test "test/TC_Classifier.rb"
97
+ unit_test "test/TC_ClassLimitedCache.rb"
98
+ unit_test "test/TC_DiskCache.rb"
99
+ unit_test "test/TC_ImageSize.rb"
100
+ unit_test "test/TC_ISAAC.rb"
101
+ unit_test "test/TC_KeyValueCoding.rb"
102
+ unit_test "test/TC_Lockfile.rb"
103
+ unit_test "test/TC_LRUCache.rb"
104
+ unit_test "test/TC_NoSubclass.rb"
105
+ unit_test "test/TC_Pool.rb"
106
+ # unit_test "test/TC_SimpleDetached.rb"
107
+ unit_test "test/TC_StandardDispatcher.rb"
108
+ unit_test "test/TC_StandardDispatcherWithClassifier.rb"
109
+ unit_test "test/TC_String.rb"
110
+ unit_test "test/TC_Tag.rb"
111
+ unit_test "test/TC_ResourceURL.rb"
112
+ unit_test "test/TC_Mongrel.rb"
113
+ unit_test "test/TC_Hybrid.rb"
114
+ unit_test "test/TC_Webrick.rb"
115
+ true
116
+ }
@@ -0,0 +1,8 @@
1
+ <header oid="header" />
2
+ <div id="maincontent" style="position: absolute; left: 140px; top: 130px">
3
+ <h1>Resource Not Found</h1>
4
+ <div>
5
+ <p>The resource that you requested, <b>@requested_uri</b>, could not be found.</p>
6
+ </div>
7
+ </div>
8
+ <footer oid="footer" />
@@ -0,0 +1,15 @@
1
+ import 'Header'
2
+ import 'Footer'
3
+
4
+ class Main < Iowa::Component
5
+
6
+ def setup
7
+ session.context[:side] = session.context.cookies.has_key?(::Cdirexion_id) ? :priv : :pub
8
+ session.context.response.status = 404
9
+ end
10
+
11
+ def requested_uri
12
+ session.context.request.uri
13
+ end
14
+ end
15
+
@@ -0,0 +1,48 @@
1
+ socket:
2
+ hostname: 127.0.0.1
3
+ port: 3000
4
+ logging:
5
+ basedir: ../log
6
+ minlevel: 0
7
+ maxsize: 10000000
8
+ maxage: 86400
9
+ application:
10
+ daemonize: false
11
+ docroot_caching: false
12
+ reload_interval: 7
13
+ sessioncache:
14
+ class: LRUCache
15
+ maxsize: 2000
16
+ ttl: 3600
17
+ advisorcache:
18
+ maxsize: 1000
19
+ ttl:
20
+ dispatcher:
21
+ class: DBContentDispatcher
22
+ policy:
23
+ class: iowa/Policy
24
+ public_database:
25
+ vendor: Mysql
26
+ host: localhost
27
+ database: direxion_pub
28
+ user: direxion
29
+ password: dir1002ex
30
+ startsize: 1
31
+ maxage: 600
32
+ maxsize: 3
33
+ monitorinterval: 300
34
+ private_database:
35
+ vendor: Mysql
36
+ host: localhost
37
+ database: direxion_priv
38
+ user: direxion
39
+ password: dir1002ex
40
+ startsize: 1
41
+ maxage: 600
42
+ maxsize: 3
43
+ monitorinterval: 300
44
+ model:
45
+ files:
46
+ - models/
47
+ interval: 300
48
+ variation: 60
@@ -0,0 +1,58 @@
1
+ #!/usr/local/ruby184/bin/ruby
2
+
3
+ require 'iowa'
4
+ require 'kansas'
5
+
6
+ Cdirexion_id = 'direxion_id'.freeze
7
+ C_index_html = '/index.html'.freeze
8
+
9
+ module Iowa
10
+ def self.noztime(t)
11
+ m = t.month
12
+ d = t.day
13
+ y = t.year
14
+ "#{m}/#{d}/#{y}"
15
+ end
16
+
17
+ class Component
18
+ def with_db(side)
19
+ application.dbpool[side].obtain do |db|
20
+ yield db
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ class DrxSession < Iowa::Session; end
27
+
28
+ class DrxApplication < Iowa::Application
29
+
30
+ self.Daemonize = true
31
+
32
+ attr_accessor :dbpool, :direxion_id_cache, :internal_content
33
+
34
+ def initialize(*args)
35
+ super
36
+
37
+ @internal_content = Hash.new {|h,k| h[k] = {:query => Proc.new {}, :retrieve => Proc.new {}}}
38
+
39
+ @dbpool = {}
40
+ @dbpool[:pub] = ::PubDrxDBPool.new
41
+ self.class.Dispatcher.dbpool[:pub] = @dbpool[:pub]
42
+ @dbpool[:priv] = ::PrivDrxDBPool.new
43
+ self.class.Dispatcher.dbpool[:priv] = @dbpool[:priv]
44
+ @direxion_id_cache = Iowa::Caches::LRUCache.new(
45
+ {:maxsize => (Iowa.config[Iowa::Capplication]['advisorcache']['maxsize'] || 200),
46
+ :ttl => Iowa.config[Iowa::Capplication]['advisorcache']['ttl']})
47
+ @direxion_id_cache.add_finalizer do |key,obj|
48
+ Iowa.app.dbpool[:priv].obtain do |ksdbh|
49
+ auth = ksdbh.select(:Authorization) {|a| a.idx == key}.first
50
+ auth.delete if auth
51
+ end
52
+ end
53
+ Iowa.config[Iowa::Capplication][Iowa::Croot_url] = 'http://direxion.enigo.com'
54
+ end
55
+
56
+ end
57
+
58
+ Iowa.run