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,145 @@
1
+ This is a stripped down package of Daniel Berger's windows-pr library.
2
+ This is version 0.5.3.
3
+
4
+ The original can be found at Rubyforge at:
5
+
6
+ http://rubyforge.org/projects/win32utils
7
+
8
+ This library will be installed only if it is not already present on the
9
+ appropriate platform. The main setup.rb for IOWA takes care of it, including
10
+ generation of ri documentation and the installation of the document in doc/ to:
11
+
12
+ Config::CONFIG['datadir']/windows-pr
13
+
14
+ Below is the original README
15
+
16
+ -----
17
+
18
+ = windows-pr
19
+ == Description
20
+ A collection of Windows functions predefined for you via Win32API. Hence,
21
+ the 'pr', for 'Pure Ruby'.
22
+
23
+ == Synopsis
24
+ require 'windows/path'
25
+
26
+ class Foo
27
+ include Windows::Path
28
+
29
+ if PathIsRoot.call("C:\\") > 0
30
+ ...
31
+ end
32
+
33
+ # or
34
+
35
+ if PathIsRoot("C:\\")
36
+ ...
37
+ end
38
+ end
39
+
40
+ == Methods
41
+ Each of the various files included as part of this package provide a series
42
+ of constants corresponding to the equivalent Windows API function and
43
+ related numeric constants. For example, if you require 'windows/path',
44
+ you now have PathIsRoot, PathIsUNC, etc, available to you as Win32API
45
+ objects in the form of constants.
46
+
47
+ A wrapper has been provided for each method in order to avoid the
48
+ Win32API#call method. So, instead of PathIsRoot.call(path) you can
49
+ invoke it as PathIsRoot(path). If the original function is lower case
50
+ then the wrapper method is lower case as well. For example, instead of
51
+ doing 'Memcpy.call(dest, src, size)' you can do 'memcpy(dest, src, size)'.
52
+
53
+ Remember boys and girls, if you write PathIsRoot, you're referring to
54
+ the constant. If you write PathIsRoot(), you're calling the wrapper
55
+ method.
56
+
57
+ Boolean methods automatically perform a check for success or failure. So,
58
+ instead of having to do something like 'if PathIsRoot(path) > 0' you can
59
+ just do 'if PathIsRoot(path)'.
60
+
61
+ Files contain related functions, by topic. For example, the clipboard.rb
62
+ file contains clipboard related functions, such as CloseClipboard(), as
63
+ well as constants such as CF_TEXT, CF_BITMAP, etc.
64
+
65
+ == Wide character functions
66
+ I decided that the $KCODE handling was a bad idea, so most of the $KCODE
67
+ handling has been removed. The only methods that change their behavior
68
+ based on $KCODE are the multi_to_wide and wide_to_multi helper methods
69
+ in the Windows::Unicode module. If $KCODE is set to UTF8, then the code
70
+ point used is CP_UTF8. Otherwise, CP_ACP is used.
71
+
72
+ In the future I'll add the wide character functions explicitly. I haven't
73
+ added many yet (as of 29-Jul-2006) but I plan on adding as many as I can
74
+ as time permits.
75
+
76
+ == Where are the tests, dude?
77
+ While I've made some effort to test these functions, there are simply too
78
+ many for me to effectively test them all. We're ultimately talking about
79
+ hundreds, if not thousands, of functions, and I don't know what all of them
80
+ actually do. That being said, I will add tests where and when I can.
81
+
82
+ If you find that I've declared the function prototype wrong for a given
83
+ function, please let me know ASAP and I'll fix it. An example program
84
+ demonstrating the problem would be helpful, too. Or, if you'd just like
85
+ to contribute some test cases, that's fine as well.
86
+
87
+ == What's the point?
88
+ I became tired of redefining Windows functions over and over whenever I
89
+ wanted to use the Win32API package. I thought it would be very handy to
90
+ have them predefined for me in a package with convenient wrapper methods
91
+ to boot.
92
+
93
+ While it's true that Moonwolf has a package on the RAA that includes many
94
+ of these functions defined already, there are a few issues with it. First,
95
+ it puts *every* function and constant in one or two files. That's a waste
96
+ of memory, hard to organize & maintain, and impossible to test. Second,
97
+ some of his function declarations are wrong. Third, some of the functions
98
+ I needed for my own projects are missing. Fourth, there's no gem. Lastly,
99
+ I haven't seen an update in over 5 years, which leads me to believe it is
100
+ no longer maintained.
101
+
102
+ == Hey, I'm missing function X!
103
+ I have only defined a small subset of the overall Windows API. It would
104
+ take me years to define them *all*. I defined the ones I needed first,
105
+ plus some that I thought would be useful to others. I will continue to
106
+ add functions in my spare time, or (especially) by request.
107
+
108
+ == Bugs
109
+ None that I'm aware of. Please report any bugs on the project page at
110
+ http://www.rubyforge.org/projects/win32utils.
111
+
112
+ The only real bugs you could find are either bad prototype declarations
113
+ or bad constant values. But, please report either.
114
+
115
+ == Known Issues
116
+ In some cases the MSDN docs are wrong, and we have to learn it the hard
117
+ way. If you should happen to find a documentation bug on their site,
118
+ please contact them and let them know. They're generally good about fixing
119
+ them.
120
+
121
+ In other cases library functions are not exported by the dll. For example,
122
+ my version of shlwapi.dll does not export the PathIsHTMLFile() function,
123
+ despite being well past the minimum version for that dll file. There is
124
+ nothing you or I can do about it short of rebuilding the dll file from
125
+ scratch and/or reporting the issue to Microsoft.
126
+
127
+ == Supported Platforms
128
+ I only support the Windows NT familiy of Windows, and really only Windows
129
+ 2000 and later, though I'll make an effort to support NT 4 if there are
130
+ any NT 4 related issues and requests to support it.
131
+
132
+ == License
133
+ Ruby's
134
+
135
+ == Warranty
136
+ This package is provided "as is" and without any express or
137
+ implied warranties, including, without limitation, the implied
138
+ warranties of merchantability and fitness for a particular purpose.
139
+
140
+ == Copyright
141
+ (C) 2006, Daniel J. Berger
142
+ All Rights Reserved
143
+
144
+ == Author
145
+ Daniel Berger
@@ -0,0 +1,25 @@
1
+ = Parameters
2
+ Long: 'N' or 'L'
3
+ Integer: 'I'
4
+ Pointer: 'P'
5
+ Void: 'V'
6
+
7
+ = Windows Data Types
8
+ BOOL => 'I'
9
+ DWORD => 'L'
10
+ HANDLE => 'L'
11
+ LPDWORD => 'P'
12
+ LPTSTR => 'P'
13
+ UINT => 'I'
14
+ VOID => 'V'
15
+ WORD => 'I'
16
+
17
+ = C Data Types
18
+ void => 'V'
19
+ void* => 'P'
20
+ char* => 'P'
21
+ const char* => 'L'
22
+ int => 'I'
23
+ long => 'L'
24
+ struct => 'P'
25
+ struct* => 'P'
@@ -0,0 +1,72 @@
1
+ require 'Win32API'
2
+
3
+ module Windows
4
+ module Clipboard
5
+ CF_TEXT = 1
6
+ CF_BITMAP = 2
7
+ CF_METAFILEPICT = 3
8
+ CF_SYLK = 4
9
+ CF_DIF = 5
10
+ CF_TIFF = 6
11
+ CF_OEMTEXT = 7
12
+ CF_DIB = 8
13
+ CF_PALETTE = 9
14
+ CF_PENDATA = 10
15
+ CF_RIFF = 11
16
+ CF_WAVE = 12
17
+ CF_UNICODETEXT = 13
18
+ CF_ENHMETAFILE = 14
19
+
20
+ OpenClipboard = Win32API.new('user32', 'OpenClipboard', 'L', 'I')
21
+ CloseClipboard = Win32API.new('user32', 'CloseClipboard', 'V', 'I')
22
+ GetClipboardData = Win32API.new('user32', 'GetClipboardData', 'I', 'P')
23
+ EmptyClipboard = Win32API.new('user32', 'EmptyClipboard', 'V', 'I')
24
+ SetClipboardData = Win32API.new('user32', 'SetClipboardData', 'II', 'I')
25
+
26
+ CountClipboardFormats = Win32API.new('user32', 'CountClipboardFormats', 'V', 'I')
27
+ IsClipboardFormatAvailable = Win32API.new('user32', 'IsClipboardFormatAvailable', 'I', 'I')
28
+ GetClipboardFormatName = Win32API.new('user32', 'GetClipboardFormatName', 'IPI', 'I')
29
+ EnumClipboardFormats = Win32API.new('user32', 'EnumClipboardFormats', 'I', 'I')
30
+ RegisterClipboardFormat = Win32API.new('user32', 'RegisterClipboardFormat', 'P', 'I')
31
+
32
+ def OpenClipboard(handle)
33
+ OpenClipboard.call(handle) > 0
34
+ end
35
+
36
+ def CloseClipboard
37
+ CloseClipboard.call > 0
38
+ end
39
+
40
+ def GetClipboardData(format)
41
+ GetClipboardData.call(format)
42
+ end
43
+
44
+ def EmptyClipboard
45
+ EmptyClipboard.call > 0
46
+ end
47
+
48
+ def SetClipboardData(format, handle)
49
+ SetClipboardData.call(format, handle)
50
+ end
51
+
52
+ def CountClipboardFormats
53
+ CountClipboardFormats.call
54
+ end
55
+
56
+ def IsClipboardFormatAvailable(format)
57
+ IsClipboardFormatAvailable.call(format) > 0
58
+ end
59
+
60
+ def GetClipboardFormatName(format, format_name, max)
61
+ GetClipboardFormatName.call(format, format_name, max)
62
+ end
63
+
64
+ def EnumClipboardFormats(format)
65
+ EnumClipboardFormats.call(format)
66
+ end
67
+
68
+ def RegisterClipboardFormat(format)
69
+ RegisterClipboardFormat.call(format)
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,323 @@
1
+ require 'Win32API'
2
+
3
+ module Windows
4
+ module Console
5
+ CTRL_C_EVENT = 0
6
+ CTRL_BREAK_EVENT = 1
7
+ CTRL_LOGOFF_EVENT = 5
8
+ CTRL_SHUTDOWN_EVENT = 6
9
+
10
+ ENABLE_PROCESSED_INPUT = 0x0001
11
+ ENABLE_LINE_INPUT = 0x0002
12
+ ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002
13
+ ENABLE_ECHO_INPUT = 0x0004
14
+ ENABLE_WINDOW_INPUT = 0x0008
15
+ ENABLE_MOUSE_INPUT = 0x0010
16
+ ENABLE_INSERT_MODE = 0x0020
17
+ ENABLE_QUICK_EDIT_MODE = 0x0040
18
+
19
+ STD_INPUT_HANDLE = -10
20
+ STD_OUTPUT_HANDLE = -11
21
+ STD_ERROR_HANDLE = -12
22
+
23
+ # Console window constants
24
+ FOREGROUND_BLUE = 0x0001
25
+ FOREGROUND_GREEN = 0x0002
26
+ FOREGROUND_RED = 0x0004
27
+ FOREGROUND_INTENSITY = 0x0008
28
+ BACKGROUND_BLUE = 0x0010
29
+ BACKGROUND_GREEN = 0x0020
30
+ BACKGROUND_RED = 0x0040
31
+ BACKGROUND_INTENSITY = 0x0080
32
+ COMMON_LVB_LEADING_BYTE = 0x0100
33
+ COMMON_LVB_TRAILING_BYTE = 0x0200
34
+ COMMON_LVB_GRID_HORIZONTAL = 0x0400
35
+ COMMON_LVB_GRID_LVERTICAL = 0x0800
36
+ COMMON_LVB_GRID_RVERTICAL = 0x1000
37
+ COMMON_LVB_REVERSE_VIDEO = 0x4000
38
+ COMMON_LVB_UNDERSCORE = 0x8000
39
+ COMMON_LVB_SBCSDBCS = 0x0300
40
+
41
+ CONSOLE_FULLSCREEN = 1
42
+ CONSOLE_OVERSTRIKE = 1
43
+ CONSOLE_FULLSCREEN_HARDWARE = 2
44
+
45
+ AddConsoleAlias = Win32API.new('kernel32', 'AddConsoleAlias', 'PPP', 'I')
46
+ AllocConsole = Win32API.new('kernel32', 'AllocConsole', 'V', 'I')
47
+ AttachConsole = Win32API.new('kernel32', 'AttachConsole', 'L', 'I')
48
+ CreateConsoleScreenBuffer = Win32API.new('kernel32', 'CreateConsoleScreenBuffer', 'LLPLP', 'L')
49
+ FillConsoleOutputAttribute = Win32API.new('kernel32', 'FillConsoleOutputAttribute', 'LILLP', 'I')
50
+ FillConsoleOutputCharacter = Win32API.new('kernel32', 'FillConsoleOutputCharacter', 'LILLP', 'I')
51
+ FlushConsoleInputBuffer = Win32API.new('kernel32', 'FlushConsoleInputBuffer', 'L', 'I')
52
+ FreeConsole = Win32API.new('kernel32', 'FreeConsole', 'V', 'I')
53
+ GenerateConsoleCtrlEvent = Win32API.new('kernel32', 'GenerateConsoleCtrlEvent', 'LL', 'I')
54
+ GetConsoleAlias = Win32API.new('kernel32', 'GetConsoleAlias', 'PPLP', 'L')
55
+ GetConsoleAliases = Win32API.new('kernel32', 'GetConsoleAliases', 'PLP', 'L')
56
+ GetConsoleAliasesLength = Win32API.new('kernel32', 'GetConsoleAliasesLength', 'P', 'L')
57
+ GetConsoleAliasExes = Win32API.new('kernel32', 'GetConsoleAliasExes', 'PL', 'L')
58
+ GetConsoleAliasExesLength = Win32API.new('kernel32', 'GetConsoleAliasExesLength', 'V', 'L')
59
+ GetConsoleCP = Win32API.new('kernel32', 'GetConsoleCP', 'V', 'I')
60
+ GetConsoleCursorInfo = Win32API.new('kernel32', 'GetConsoleCursorInfo', 'LP', 'I')
61
+ GetConsoleDisplayMode = Win32API.new('kernel32', 'GetConsoleDisplayMode', 'P', 'L')
62
+ GetConsoleFontSize = Win32API.new('kernel32', 'GetConsoleFontSize', 'LL', 'L')
63
+ GetConsoleMode = Win32API.new('kernel32', 'GetConsoleMode', 'LP', 'I')
64
+ GetConsoleOutputCP = Win32API.new('kernel32', 'GetConsoleOutputCP', 'V', 'I')
65
+ GetConsoleProcessList = Win32API.new('kernel32', 'GetConsoleProcessList', 'PL', 'L')
66
+ GetConsoleScreenBufferInfo = Win32API.new('kernel32', 'GetConsoleScreenBufferInfo', 'LP', 'I')
67
+ GetConsoleSelectionInfo = Win32API.new('kernel32', 'GetConsoleSelectionInfo', 'P', 'I')
68
+ GetConsoleTitle = Win32API.new('kernel32', 'GetConsoleTitle', 'PL', 'L')
69
+ GetConsoleWindow = Win32API.new('kernel32', 'GetConsoleWindow', 'V', 'L')
70
+ GetCurrentConsoleFont = Win32API.new('kernel32', 'GetCurrentConsoleFont' , 'LIP', 'I')
71
+ GetLargestConsoleWindowSize = Win32API.new('kernel32', 'GetLargestConsoleWindowSize', 'L', 'L')
72
+ GetNumberOfConsoleInputEvents = Win32API.new('kernel32', 'GetNumberOfConsoleInputEvents', 'LP', 'I')
73
+ GetNumberOfConsoleMouseButtons = Win32API.new('kernel32', 'GetNumberOfConsoleMouseButtons', 'L', 'I')
74
+ GetStdHandle = Win32API.new('kernel32', 'GetStdHandle', 'L', 'L')
75
+ PeekConsoleInput = Win32API.new('kernel32', 'PeekConsoleInput', 'LPLP', 'I')
76
+ ReadConsole = Win32API.new('kernel32', 'ReadConsole', 'LPLPP', 'I')
77
+ ReadConsoleInput = Win32API.new('kernel32', 'ReadConsoleInput', 'LPLP', 'I')
78
+ ReadConsoleOutput = Win32API.new('kernel32', 'ReadConsoleOutput', 'LPLLP', 'I')
79
+ ReadConsoleOutputAttribute = Win32API.new('kernel32', 'ReadConsoleOutputAttribute', 'LPLLP', 'I')
80
+ ReadConsoleOutputCharacter = Win32API.new('kernel32', 'ReadConsoleOutputCharacter', 'LPLLP', 'I')
81
+ ScrollConsoleScreenBuffer = Win32API.new('kernel32', 'ScrollConsoleScreenBuffer', 'LPPLP', 'I')
82
+ SetConsoleActiveScreenBuffer = Win32API.new('kernel32', 'SetConsoleActiveScreenBuffer', 'L', 'I')
83
+ SetConsoleCommandHistoryMode = Win32API.new('kernel32', 'SetConsoleCommandHistoryMode', 'L', 'I')
84
+ SetConsoleCP = Win32API.new('kernel32', 'SetConsoleCP', 'L', 'I')
85
+ SetConsoleCtrlHandler = Win32API.new('kernel32', 'SetConsoleCtrlHandler', 'PI', 'I')
86
+ SetConsoleCursorInfo = Win32API.new('kernel32', 'SetConsoleCursorInfo', 'LP', 'I')
87
+ SetConsoleCursorPosition = Win32API.new('kernel32', 'SetConsoleCursorPosition', 'LP', 'I')
88
+ SetConsoleDisplayMode = Win32API.new('kernel32', 'SetConsoleDisplayMode', 'LLP', 'I')
89
+ SetConsoleMode = Win32API.new('kernel32', 'SetConsoleMode', 'LL', 'I')
90
+ SetConsoleOutputCP = Win32API.new('kernel32', 'SetConsoleOutputCP', 'I', 'I')
91
+ SetConsoleScreenBufferSize = Win32API.new('kernel32', 'SetConsoleScreenBufferSize', 'LL', 'I')
92
+ SetConsoleTextAttribute = Win32API.new('kernel32', 'SetConsoleTextAttribute', 'LL', 'I')
93
+ SetConsoleTitle = Win32API.new('kernel32', 'SetConsoleTitle', 'P', 'I')
94
+ SetConsoleWindowInfo = Win32API.new('kernel32', 'SetConsoleWindowInfo', 'LIP', 'I')
95
+ SetStdHandle = Win32API.new('kernel32', 'SetStdHandle', 'LL', 'I')
96
+ WriteConsole = Win32API.new('kernel32', 'WriteConsole', 'LPLPP', 'I')
97
+ WriteConsoleInput = Win32API.new('kernel32', 'WriteConsoleInput', 'LPLP', 'I')
98
+ WriteConsoleOutput = Win32API.new('kernel32', 'WriteConsoleOutput', 'LPLLP', 'I')
99
+ WriteConsoleOutputAttribute = Win32API.new('kernel32', 'WriteConsoleOutputAttribute', 'LPLLP', 'I')
100
+ WriteConsoleOutputCharacter = Win32API.new('kernel32', 'WriteConsoleOutputCharacter', 'LPLLP', 'I')
101
+
102
+ def AddConsoleAlias(source, target, exe)
103
+ AddConsoleAlias.call(source, target, exe) != 0
104
+ end
105
+
106
+ def AllocConsole()
107
+ AllocConsole.call != 0
108
+ end
109
+
110
+ def AttachConsole(pid)
111
+ AttachConsole.call(pid)
112
+ end
113
+
114
+ def CreateConsoleScreenBuffer(access, mode, sec, flags, data)
115
+ CreateConsoleScreenBuffer.call(access, mode, sec, flags, data)
116
+ end
117
+
118
+ def FillConsoleOutputAttribute(handle, attribute, length, coord, num)
119
+ FillConsoleOutputAttribute.call(handle, attribute, length, coord, num) != 0
120
+ end
121
+
122
+ def FlushConsoleInputBuffer(handle)
123
+ FlushConsoleInputBuffer.call(handle) != 0
124
+ end
125
+
126
+ def FreeConsole()
127
+ FreeConsole.call != 0
128
+ end
129
+
130
+ def GenerateConsoleCtrlEvent(ctrl_event, process_group_id)
131
+ GenerateConsoleCtrlEvent.call(ctrl_event, process_group_id) != 0
132
+ end
133
+
134
+ def GetConsoleAliases(buffer, buffer_length, exe_name)
135
+ GetConsoleAliases.call(buffer, buffer_length, exe_name)
136
+ end
137
+
138
+ def GetConsoleAliasesLength(exe_name)
139
+ GetConsoleAliasesLength.call(exe_name)
140
+ end
141
+
142
+ def GetConsoleAliasExes(buffer, buffer_length)
143
+ GetConsoleAliasExes.call(buffer, buffer_length)
144
+ end
145
+
146
+ def GetConsoleAliasExesLength()
147
+ GetConsoleAliasExesLength.call
148
+ end
149
+
150
+ def GetConsoleCP()
151
+ GetConsoleCP.call
152
+ end
153
+
154
+ def GetConsoleCursorInfo(handle, cursor_info_ptr)
155
+ GetConsoleCursorInfo.call(handle, cursor_info_ptr)
156
+ end
157
+
158
+ # The docs say this returns a BOOL, but really it's a DWORD
159
+ def GetConsoleDisplayMode(flags)
160
+ GetConsoleDisplayMode.call(flags)
161
+ end
162
+
163
+ def GetConsoleFontSize(handle, font)
164
+ GetConsoleFontSize.call(handle, font)
165
+ end
166
+
167
+ def GetConsoleMode(handle, mode)
168
+ GetConsoleMode.call(handle, mode) != 0
169
+ end
170
+
171
+ def GetConsoleOutputCP()
172
+ GetConsoleOutputCP.call
173
+ end
174
+
175
+ def GetConsoleProcessList(proc_list, proc_count)
176
+ GetConsoleProcessList.call(proc_list, proc_count)
177
+ end
178
+
179
+ def GetConsoleScreenBufferInfo(handle, buf_info)
180
+ GetConsoleScreenBufferInfo.call(handle, buf_info) != 0
181
+ end
182
+
183
+ def GetConsoleSelectionInfo(info_struct)
184
+ GetConsoleSelectionInfo.call(info_struct) != 0
185
+ end
186
+
187
+ def GetConsoleTitle(title, size)
188
+ GetConsoleTitle.call(title, size)
189
+ end
190
+
191
+ def GetConsoleWindow()
192
+ GetConsoleWindow.call
193
+ end
194
+
195
+ def GetCurrentConsoleFont(handle, max_window, current_font_struct)
196
+ GetCurrentConsoleFont.call(handle, max_window, current_font_struct)
197
+ end
198
+
199
+ def GetLargestConsoleWindowSize(handle)
200
+ GetLargestConsoleWindowSize.call(handle)
201
+ end
202
+
203
+ def GetNumberOfConsoleInputEvents(handle, num_events)
204
+ GetNumberOfConsoleInputEvents.call(handle, num_events)
205
+ end
206
+
207
+ def GetNumberOfConsoleMouseButtons(num_mouse_buttons)
208
+ GetNumberOfConsoleMouseButtons.call(num_mouse_buttons)
209
+ end
210
+
211
+ def GetStdHandle(std_handle)
212
+ GetStdHandle.call(std_handle)
213
+ end
214
+
215
+ def PeekConsoleInput(handle, buffer, length, num_events)
216
+ PeekConsoleInput.call(handle, buffer, length, num_events) != 0
217
+ end
218
+
219
+ def ReadConsole(handle, buffer, num_to_read, num_read, res = 0)
220
+ ReadConsole.call(handle, buffer, num_to_read, num_read, res) != 0
221
+ end
222
+
223
+ def ReadConsoleInput(handle, buffer, length, num_read)
224
+ ReadConsoleInput.call(handle, buffer, length, num_read) != 0
225
+ end
226
+
227
+ def ReadConsoleOutput(handle, buffer, buf_size, buf_coord, reg)
228
+ ReadConsoleOutput.call(handle, buffer, buf_size, buf_coord, reg) != 0
229
+ end
230
+
231
+ def ReadConsoleOutputAttribute(handle, attrib, len, coord, num_read)
232
+ ReadConsoleOutputAttribute.call(handle, attrib, len, coord, num_read) != 0
233
+ end
234
+
235
+ def ReadConsoleOutputCharacter(handle, char, length, coord, num_read)
236
+ ReadConsoleOutputCharacter.call(handle, char, length, coord, num_read) != 0
237
+ end
238
+
239
+ def ScrollConsoleScreenBuffer(handle, scroll, clip, coord, fill)
240
+ ScrollConsoleScreenBuffer.call(handle, scroll, clip, coord, fill) != 0
241
+ end
242
+
243
+ def SetConsoleActiveScreenBuffer(handle)
244
+ SetConsoleActiveScreenBuffer.call(handle) != 0
245
+ end
246
+
247
+ def SetConsoleCommandHistoryMode(flags)
248
+ SetConsoleCommandHistoryMode.call(flags) != 0
249
+ end
250
+
251
+ def SetConsoleCP(code_page_id)
252
+ SetConsoleCP.call(code_page_id) != 0
253
+ end
254
+
255
+ def SetConsoleCtrlHandler(handler, add)
256
+ SetConsoleCtrlHandler.call(handler, add) != 0
257
+ end
258
+
259
+ def SetConsoleCursorInfo(handle, cursor)
260
+ SetConsoleCursorInfo.call(handle, cursor) != 0
261
+ end
262
+
263
+ def SetConsoleCursorPosition(handle, coord)
264
+ SetConsoleCursorPosition.call(handle, coord) != 0
265
+ end
266
+
267
+ def SetConsoleDisplayMode(handle, flags, coord)
268
+ SetConsoleDisplayMode.call(handle, flags, coord) != 0
269
+ end
270
+
271
+ def SetConsoleHistoryInfo(info)
272
+ SetConsoleHistoryInfo.call(info) != 0
273
+ end
274
+
275
+ def SetConsoleMode(handle, mode)
276
+ SetConsoleMode.call(handle, mode) != 0
277
+ end
278
+
279
+ def SetConsoleOutputCP(code_page_id)
280
+ SetConsoleOutputCP.call(code_page_id) != 0
281
+ end
282
+
283
+ def SetConsoleScreenBufferSize(handle, size)
284
+ SetConsoleScreenBufferSize.call(handle, size) != 0
285
+ end
286
+
287
+ def SetConsoleTextAttribute(handle, attribute)
288
+ SetConsoleTextAttribute.call(handle, attribute) != 0
289
+ end
290
+
291
+ def SetConsoleTitle(title)
292
+ SetConsoleTitle.call(title) != 0
293
+ end
294
+
295
+ def SetConsoleWindowInfo(handle, absolute, window)
296
+ SetConsoleWindowInfo.call(handle, absolute, window) != 0
297
+ end
298
+
299
+ def SetStdHandle(std_handle, handle)
300
+ SetStdHandle.call(std_handle, handle) != 0
301
+ end
302
+
303
+ def WriteConsole(handle, buffer, num_to_write, num_written, res = 0)
304
+ WriteConsole.call(handle, buffer, num_to_write, num_written, res) != 0
305
+ end
306
+
307
+ def WriteConsoleInput(handle, buffer, length, num_events)
308
+ WriteConsoleInput.call(handle, buffer, length, num_events) != 0
309
+ end
310
+
311
+ def WriteConsoleOutput(handle, buffer, buf_size, coord, region)
312
+ WriteConsoleOutput.call(handle, buffer, buf_size, coord, region) != 0
313
+ end
314
+
315
+ def WriteConsoleOutputAttribute(handle, attrib, length, coord, num)
316
+ WriteConsoleOutputAttribute.call(handle, attrib, length, coord, num) != 0
317
+ end
318
+
319
+ def WriteConsoleOutputCharacter(handle, char, length, coord, num)
320
+ WriteConsoleOutputCharacter.call(handle, char, length, coord, num) != 0
321
+ end
322
+ end
323
+ end