carats 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (422) hide show
  1. data/ChangeLog +2 -0
  2. data/LICENSE +5 -0
  3. data/README +67 -0
  4. data/Reapfile +72 -0
  5. data/ToDo +24 -0
  6. data/bench/b_harray.rb +49 -0
  7. data/bench/b_range.rb +64 -0
  8. data/demo/ansicolor/cdiff.rb +20 -0
  9. data/demo/ansicolor/example.rb +82 -0
  10. data/demo/io-reactor/chatserver.rb +347 -0
  11. data/doc/classes/Array.html +172 -0
  12. data/doc/classes/BBCode.html +638 -0
  13. data/doc/classes/BinaryReader.html +675 -0
  14. data/doc/classes/Binding.html +223 -0
  15. data/doc/classes/ByteOrder.html +284 -0
  16. data/doc/classes/Class.html +189 -0
  17. data/doc/classes/Constant.html +785 -0
  18. data/doc/classes/Constant/CGS.html +609 -0
  19. data/doc/classes/Continuation.html +113 -0
  20. data/doc/classes/Coroutine.html +387 -0
  21. data/doc/classes/CountingSemaphore.html +337 -0
  22. data/doc/classes/CrossCase.html +561 -0
  23. data/doc/classes/DynamicMixin.html +185 -0
  24. data/doc/classes/EnumerableWithArgs.html +550 -0
  25. data/doc/classes/Expect.html +428 -0
  26. data/doc/classes/Expect/DefaultChain.html +113 -0
  27. data/doc/classes/Expect/SeparatedPattern.html +223 -0
  28. data/doc/classes/Expect/Timeout.html +167 -0
  29. data/doc/classes/Expect/UnmatchedMessage.html +160 -0
  30. data/doc/classes/FileList.html +833 -0
  31. data/doc/classes/FloatString.html +534 -0
  32. data/doc/classes/Functor.html +211 -0
  33. data/doc/classes/HArray.html +1872 -0
  34. data/doc/classes/HTML.html +328 -0
  35. data/doc/classes/Heap.html +683 -0
  36. data/doc/classes/Heap/EmptyHeapException.html +111 -0
  37. data/doc/classes/Heap/Max.html +176 -0
  38. data/doc/classes/Heap/Min.html +176 -0
  39. data/doc/classes/IO.html +108 -0
  40. data/doc/classes/IO/Reactor.html +790 -0
  41. data/doc/classes/IO/Redirect.html +289 -0
  42. data/doc/classes/Infinity.html +320 -0
  43. data/doc/classes/Interval.html +1014 -0
  44. data/doc/classes/InvalidNackError.html +161 -0
  45. data/doc/classes/Kernel.html +204 -0
  46. data/doc/classes/Lisp.html +1132 -0
  47. data/doc/classes/Lisp/DottedPair.html +379 -0
  48. data/doc/classes/Lisp/Format.html +178 -0
  49. data/doc/classes/Lisp/Format/ArgumentError.html +126 -0
  50. data/doc/classes/Lisp/Format/Directives.html +155 -0
  51. data/doc/classes/Lisp/Format/Directives/ArgJump.html +178 -0
  52. data/doc/classes/Lisp/Format/Directives/Ascii.html +119 -0
  53. data/doc/classes/Lisp/Format/Directives/BeginCaseConversion.html +185 -0
  54. data/doc/classes/Lisp/Format/Directives/BeginConditional.html +307 -0
  55. data/doc/classes/Lisp/Format/Directives/BeginIteration.html +338 -0
  56. data/doc/classes/Lisp/Format/Directives/Binary.html +157 -0
  57. data/doc/classes/Lisp/Format/Directives/Character.html +228 -0
  58. data/doc/classes/Lisp/Format/Directives/CharacterDirective.html +203 -0
  59. data/doc/classes/Lisp/Format/Directives/ClauseSeparator.html +166 -0
  60. data/doc/classes/Lisp/Format/Directives/Decimal.html +119 -0
  61. data/doc/classes/Lisp/Format/Directives/Directive.html +397 -0
  62. data/doc/classes/Lisp/Format/Directives/DollarFP.html +205 -0
  63. data/doc/classes/Lisp/Format/Directives/EndCaseConversion.html +174 -0
  64. data/doc/classes/Lisp/Format/Directives/EndConditional.html +159 -0
  65. data/doc/classes/Lisp/Format/Directives/EndIteration.html +163 -0
  66. data/doc/classes/Lisp/Format/Directives/ExpFP.html +252 -0
  67. data/doc/classes/Lisp/Format/Directives/FFFP.html +224 -0
  68. data/doc/classes/Lisp/Format/Directives/Factory.html +180 -0
  69. data/doc/classes/Lisp/Format/Directives/FreshLine.html +175 -0
  70. data/doc/classes/Lisp/Format/Directives/GeneralFP.html +265 -0
  71. data/doc/classes/Lisp/Format/Directives/Hexadecimal.html +157 -0
  72. data/doc/classes/Lisp/Format/Directives/Indirection.html +183 -0
  73. data/doc/classes/Lisp/Format/Directives/Literal.html +187 -0
  74. data/doc/classes/Lisp/Format/Directives/NewLine.html +158 -0
  75. data/doc/classes/Lisp/Format/Directives/NewPage.html +158 -0
  76. data/doc/classes/Lisp/Format/Directives/Number.html +243 -0
  77. data/doc/classes/Lisp/Format/Directives/Octal.html +157 -0
  78. data/doc/classes/Lisp/Format/Directives/Plural.html +177 -0
  79. data/doc/classes/Lisp/Format/Directives/Print.html +237 -0
  80. data/doc/classes/Lisp/Format/Directives/Radix.html +432 -0
  81. data/doc/classes/Lisp/Format/Directives/SExpression.html +157 -0
  82. data/doc/classes/Lisp/Format/Directives/SkipWhitespace.html +165 -0
  83. data/doc/classes/Lisp/Format/Directives/Tabulate.html +198 -0
  84. data/doc/classes/Lisp/Format/Directives/Tilde.html +158 -0
  85. data/doc/classes/Lisp/Format/Directives/UnknownDirectiveError.html +117 -0
  86. data/doc/classes/Lisp/Format/Formatter.html +193 -0
  87. data/doc/classes/Lisp/Format/IncompleteParameterError.html +119 -0
  88. data/doc/classes/Lisp/Format/IndexError.html +126 -0
  89. data/doc/classes/Lisp/Format/Lexer.html +479 -0
  90. data/doc/classes/Lisp/Format/MalformedError.html +119 -0
  91. data/doc/classes/Lisp/Format/MissingParameterError.html +119 -0
  92. data/doc/classes/Lisp/Format/ModifierError.html +119 -0
  93. data/doc/classes/Lisp/Format/Output.html +239 -0
  94. data/doc/classes/Lisp/Format/ParameterError.html +126 -0
  95. data/doc/classes/Lisp/Format/Parameters.html +123 -0
  96. data/doc/classes/Lisp/Format/Parameters/Argument.html +172 -0
  97. data/doc/classes/Lisp/Format/Parameters/ArgumentCount.html +159 -0
  98. data/doc/classes/Lisp/Format/Parameters/Character.html +119 -0
  99. data/doc/classes/Lisp/Format/Parameters/Default.html +120 -0
  100. data/doc/classes/Lisp/Format/Parameters/Integer.html +119 -0
  101. data/doc/classes/Lisp/Format/Parameters/Parameter.html +206 -0
  102. data/doc/classes/Lisp/Format/Parser.html +212 -0
  103. data/doc/classes/Lisp/Format/Positioned.html +166 -0
  104. data/doc/classes/Lisp/Format/State.html +455 -0
  105. data/doc/classes/Lisp/Format/SyntaxError.html +126 -0
  106. data/doc/classes/Method.html +274 -0
  107. data/doc/classes/Method/DuckHunter.html +281 -0
  108. data/doc/classes/Module.html +709 -0
  109. data/doc/classes/Multiton.html +284 -0
  110. data/doc/classes/Multiton/New.html +164 -0
  111. data/doc/classes/Multiton/Semi.html +155 -0
  112. data/doc/classes/NackClass.html +322 -0
  113. data/doc/classes/NilClass.html +231 -0
  114. data/doc/classes/NilComparable.html +179 -0
  115. data/doc/classes/NotCopyable.html +273 -0
  116. data/doc/classes/Object.html +261 -0
  117. data/doc/classes/OpenStructable.html +346 -0
  118. data/doc/classes/OrderedHash.html +939 -0
  119. data/doc/classes/Parser.html +515 -0
  120. data/doc/classes/Parser/Main.html +178 -0
  121. data/doc/classes/Parser/Marker.html +475 -0
  122. data/doc/classes/Parser/Registry.html +354 -0
  123. data/doc/classes/Parser/Token.html +399 -0
  124. data/doc/classes/Parser/UnitToken.html +222 -0
  125. data/doc/classes/Ref.html +230 -0
  126. data/doc/classes/SimpleStringIO.html +183 -0
  127. data/doc/classes/StaticHash.html +202 -0
  128. data/doc/classes/String.html +172 -0
  129. data/doc/classes/Struct.html +181 -0
  130. data/doc/classes/SuperStruct.html +382 -0
  131. data/doc/classes/Term.html +156 -0
  132. data/doc/classes/Term/ANSIColor.html +185 -0
  133. data/doc/classes/Text.html +138 -0
  134. data/doc/classes/Text/Soundex.html +222 -0
  135. data/doc/classes/TextTagIterator.html +911 -0
  136. data/doc/classes/Time.html +119 -0
  137. data/doc/classes/Time/Limit.html +303 -0
  138. data/doc/classes/Time/Limit/Dummy.html +181 -0
  139. data/doc/classes/Timer.html +351 -0
  140. data/doc/classes/TracePoint.html +532 -0
  141. data/doc/classes/Tuple.html +178 -0
  142. data/doc/classes/Uninheritable.html +213 -0
  143. data/doc/classes/Version.html +783 -0
  144. data/doc/created.rid +1 -0
  145. data/doc/files/LICENSE.html +113 -0
  146. data/doc/files/README.html +201 -0
  147. data/doc/files/lib/carat/1st_rb.html +107 -0
  148. data/doc/files/lib/carat/ansicolor_rb.html +146 -0
  149. data/doc/files/lib/carat/attr_rb.html +101 -0
  150. data/doc/files/lib/carat/bbcode_rb.html +152 -0
  151. data/doc/files/lib/carat/binaryreader_rb.html +114 -0
  152. data/doc/files/lib/carat/binding-of-caller_rb.html +108 -0
  153. data/doc/files/lib/carat/byteorder_rb.html +107 -0
  154. data/doc/files/lib/carat/constant_rb.html +167 -0
  155. data/doc/files/lib/carat/coroutine_rb.html +156 -0
  156. data/doc/files/lib/carat/crosscase_rb.html +224 -0
  157. data/doc/files/lib/carat/duckhunter_rb.html +165 -0
  158. data/doc/files/lib/carat/dynamic-mixin_rb.html +101 -0
  159. data/doc/files/lib/carat/enumerable-args_rb.html +140 -0
  160. data/doc/files/lib/carat/expect_rb.html +137 -0
  161. data/doc/files/lib/carat/filelist_rb.html +130 -0
  162. data/doc/files/lib/carat/floatstring_rb.html +126 -0
  163. data/doc/files/lib/carat/functor_rb.html +140 -0
  164. data/doc/files/lib/carat/harray_rb.html +128 -0
  165. data/doc/files/lib/carat/heap_rb.html +154 -0
  166. data/doc/files/lib/carat/html-helpers_rb.html +116 -0
  167. data/doc/files/lib/carat/infinity_rb.html +142 -0
  168. data/doc/files/lib/carat/init_rb.html +127 -0
  169. data/doc/files/lib/carat/interval_rb.html +162 -0
  170. data/doc/files/lib/carat/io-reactor_rb.html +211 -0
  171. data/doc/files/lib/carat/io-redirect_rb.html +132 -0
  172. data/doc/files/lib/carat/lisp-format_rb.html +187 -0
  173. data/doc/files/lib/carat/lisp_rb.html +152 -0
  174. data/doc/files/lib/carat/macro_rb.html +129 -0
  175. data/doc/files/lib/carat/multiton_rb.html +178 -0
  176. data/doc/files/lib/carat/nack_rb.html +193 -0
  177. data/doc/files/lib/carat/nil-comparable_rb.html +126 -0
  178. data/doc/files/lib/carat/nil-missing_rb.html +101 -0
  179. data/doc/files/lib/carat/notcopyable_rb.html +166 -0
  180. data/doc/files/lib/carat/orderedhash_rb.html +107 -0
  181. data/doc/files/lib/carat/ostructable_rb.html +157 -0
  182. data/doc/files/lib/carat/parser-old_rb.html +239 -0
  183. data/doc/files/lib/carat/parser_rb.html +244 -0
  184. data/doc/files/lib/carat/ref_rb.html +107 -0
  185. data/doc/files/lib/carat/semaphore_rb.html +132 -0
  186. data/doc/files/lib/carat/snapshot_rb.html +152 -0
  187. data/doc/files/lib/carat/soundex_rb.html +128 -0
  188. data/doc/files/lib/carat/sstruct_rb.html +142 -0
  189. data/doc/files/lib/carat/statichash_rb.html +150 -0
  190. data/doc/files/lib/carat/tagiter_rb.html +236 -0
  191. data/doc/files/lib/carat/timelimit_rb.html +136 -0
  192. data/doc/files/lib/carat/timer_rb.html +153 -0
  193. data/doc/files/lib/carat/tracepoint_rb.html +160 -0
  194. data/doc/files/lib/carat/tuple_rb.html +123 -0
  195. data/doc/files/lib/carat/uninheritable_rb.html +101 -0
  196. data/doc/files/lib/carat/version_rb.html +141 -0
  197. data/doc/fr_class_index.html +159 -0
  198. data/doc/fr_file_index.html +78 -0
  199. data/doc/fr_method_index.html +663 -0
  200. data/doc/index.html +24 -0
  201. data/doc/rdoc-style.css +208 -0
  202. data/lib/carat-dev/README +11 -0
  203. data/lib/carat-dev/access-blocks/access_blocks.rb +42 -0
  204. data/lib/carat-dev/association/association.rb +70 -0
  205. data/lib/carat-dev/blankslate/blankslate.rb +51 -0
  206. data/lib/carat-dev/breakpoint.rb +518 -0
  207. data/lib/carat-dev/class-constructor/constructor_methods.rb +78 -0
  208. data/lib/carat-dev/class-constructor/tc_constructor.rb +35 -0
  209. data/lib/carat-dev/closecall/closecall-test.rb +39 -0
  210. data/lib/carat-dev/closecall/closecall.rb +101 -0
  211. data/lib/carat-dev/commandrunner/commandrunner.rb +100 -0
  212. data/lib/carat-dev/conditional/conditionals.rb +106 -0
  213. data/lib/carat-dev/daemon/daemon.rb +70 -0
  214. data/lib/carat-dev/detach/detach.rb +363 -0
  215. data/lib/carat-dev/detach/tc_detach.rb +57 -0
  216. data/lib/carat-dev/import-module/import-module-0.81.tar.gz +0 -0
  217. data/lib/carat-dev/import-module/import-module-0.81/LICENSE +1 -0
  218. data/lib/carat-dev/import-module/import-module-0.81/Makefile +11 -0
  219. data/lib/carat-dev/import-module/import-module-0.81/README +4 -0
  220. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-hash.rb +49 -0
  221. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-pip.rb +71 -0
  222. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-unbound-method.rb +36 -0
  223. data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.html +293 -0
  224. data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.rd +306 -0
  225. data/lib/carat-dev/import-module/import-module-0.81/doc/README.html +290 -0
  226. data/lib/carat-dev/import-module/import-module-0.81/doc/README.rd +303 -0
  227. data/lib/carat-dev/import-module/import-module-0.81/doc/style.css +85 -0
  228. data/lib/carat-dev/import-module/import-module-0.81/install.rb +99 -0
  229. data/lib/carat-dev/import-module/import-module-0.81/lib/import-module-single-thread.rb +84 -0
  230. data/lib/carat-dev/import-module/import-module-0.81/lib/import-module.rb +493 -0
  231. data/lib/carat-dev/import-module/import-module-0.81/test/Makefile +2 -0
  232. data/lib/carat-dev/import-module/import-module-0.81/test/test +91 -0
  233. data/lib/carat-dev/import-module/import-module-0.81/test/test-import-module.rb +936 -0
  234. data/lib/carat-dev/import-module/import-module-0.81/test/test-import_scope.rb +33 -0
  235. data/lib/carat-dev/import-module/import-module-0.81/test/test-scope_import.rb +33 -0
  236. data/lib/carat-dev/import-module/import-module-0.81/test/test-time.rb +184 -0
  237. data/lib/carat-dev/import-module/import-module-0.81/test/test.sh +91 -0
  238. data/lib/carat-dev/import-module/import-module-0.81/test/time.rb +135 -0
  239. data/lib/carat-dev/import-module/import-module-0.81/test/times-do.sh +10 -0
  240. data/lib/carat-dev/interface_work/SCRAP/i-contracts.rb +37 -0
  241. data/lib/carat-dev/interface_work/SCRAP/interface.rb +105 -0
  242. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0.zip +0 -0
  243. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/CHANGES +3 -0
  244. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/MANIFEST +15 -0
  245. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/README +32 -0
  246. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.rd +73 -0
  247. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.txt +94 -0
  248. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/install.rb +16 -0
  249. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/lib/interface.rb +50 -0
  250. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/tc_interface.rb +51 -0
  251. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test.rb +29 -0
  252. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_instance.rb +24 -0
  253. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_sub.rb +29 -0
  254. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_unrequire.rb +28 -0
  255. data/lib/carat-dev/interface_work/contracts/contract.zip +0 -0
  256. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.html +376 -0
  257. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000001.html +23 -0
  258. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000002.html +18 -0
  259. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000003.html +19 -0
  260. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000004.html +29 -0
  261. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000005.html +18 -0
  262. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000006.html +18 -0
  263. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractError.html +142 -0
  264. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractException.html +153 -0
  265. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractMismatch.html +125 -0
  266. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.html +157 -0
  267. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.src/M000007.html +112 -0
  268. data/lib/carat-dev/interface_work/contracts/contract/doc/created.rid +1 -0
  269. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/assertions_rb.html +109 -0
  270. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/exception_rb.html +108 -0
  271. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/integration_rb.html +108 -0
  272. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/overrides_rb.html +109 -0
  273. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract_rb.html +114 -0
  274. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_class_index.html +31 -0
  275. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_file_index.html +31 -0
  276. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_method_index.html +33 -0
  277. data/lib/carat-dev/interface_work/contracts/contract/doc/index.html +24 -0
  278. data/lib/carat-dev/interface_work/contracts/contract/doc/rdoc-style.css +208 -0
  279. data/lib/carat-dev/interface_work/contracts/contract/lib/contract.rb +88 -0
  280. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/assertions.rb +37 -0
  281. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/exception.rb +92 -0
  282. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/integration.rb +132 -0
  283. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/overrides.rb +32 -0
  284. data/lib/carat-dev/interface_work/must.rb +37 -0
  285. data/lib/carat-dev/interface_work/type.rb +232 -0
  286. data/lib/carat-dev/main/tc_toplevel.rb +23 -0
  287. data/lib/carat-dev/main/toplevel.rb +33 -0
  288. data/lib/carat-dev/main/toplevel_test.rb +24 -0
  289. data/lib/carat-dev/misc/1.rb +40 -0
  290. data/lib/carat-dev/misc/misc.rb +44 -0
  291. data/lib/carat-dev/misc/sys.rb +186 -0
  292. data/lib/carat-dev/misc/temp.rb +1 -0
  293. data/lib/carat-dev/misc/utils.rb +518 -0
  294. data/lib/carat-dev/predicate/predicate.rb +109 -0
  295. data/lib/carat-dev/predicate/predicate_test.rb +67 -0
  296. data/lib/carat-dev/premshree.rb +40 -0
  297. data/lib/carat-dev/priority-queue/pqueue.rb +183 -0
  298. data/lib/carat-dev/priority-queue/priorityqueue.rb +84 -0
  299. data/lib/carat-dev/quaternion/quaternion.rb +529 -0
  300. data/lib/carat-dev/range.rb +259 -0
  301. data/lib/carat-dev/system/rubyinfo.rb +75 -0
  302. data/lib/carat-dev/system/system.rb +105 -0
  303. data/lib/carat-dev/tc_range.rb +118 -0
  304. data/lib/carat-dev/timer/timer-doc/classes/Timer.html +291 -0
  305. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000001.html +26 -0
  306. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000002.html +19 -0
  307. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000003.html +18 -0
  308. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000004.html +18 -0
  309. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000005.html +21 -0
  310. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000006.html +23 -0
  311. data/lib/carat-dev/timer/timer-doc/created.rid +1 -0
  312. data/lib/carat-dev/timer/timer-doc/files/timer_rb.html +144 -0
  313. data/lib/carat-dev/timer/timer-doc/fr_class_index.html +27 -0
  314. data/lib/carat-dev/timer/timer-doc/fr_file_index.html +27 -0
  315. data/lib/carat-dev/timer/timer-doc/fr_method_index.html +32 -0
  316. data/lib/carat-dev/timer/timer-doc/index.html +24 -0
  317. data/lib/carat-dev/timer/timer-doc/rdoc-style.css +208 -0
  318. data/lib/carat-dev/timer/timer.rb +160 -0
  319. data/lib/carat-dev/vars/vars.rb +62 -0
  320. data/lib/carat/1st.rb +58 -0
  321. data/lib/carat/ansicolor.rb +122 -0
  322. data/lib/carat/attr.rb +342 -0
  323. data/lib/carat/bbcode.rb +352 -0
  324. data/lib/carat/binaryreader.rb +170 -0
  325. data/lib/carat/binding-of-caller.rb +83 -0
  326. data/lib/carat/byteorder.rb +34 -0
  327. data/lib/carat/constant.rb +287 -0
  328. data/lib/carat/coroutine.rb +102 -0
  329. data/lib/carat/crosscase.rb +309 -0
  330. data/lib/carat/duckhunter.rb +158 -0
  331. data/lib/carat/dynamic-mixin.rb +71 -0
  332. data/lib/carat/enumerable-args.rb +125 -0
  333. data/lib/carat/expect.rb +192 -0
  334. data/lib/carat/filelist.rb +277 -0
  335. data/lib/carat/floatstring.rb +153 -0
  336. data/lib/carat/functor.rb +41 -0
  337. data/lib/carat/harray.rb +507 -0
  338. data/lib/carat/heap.rb +193 -0
  339. data/lib/carat/html-helpers.rb +82 -0
  340. data/lib/carat/infinity.rb +61 -0
  341. data/lib/carat/init.rb +33 -0
  342. data/lib/carat/interval.rb +248 -0
  343. data/lib/carat/io-reactor.rb +657 -0
  344. data/lib/carat/io-redirect.rb +99 -0
  345. data/lib/carat/lisp-format.rb +1832 -0
  346. data/lib/carat/lisp.rb +336 -0
  347. data/lib/carat/macro.rb +68 -0
  348. data/lib/carat/multiton.rb +153 -0
  349. data/lib/carat/nack.rb +115 -0
  350. data/lib/carat/nil-comparable.rb +67 -0
  351. data/lib/carat/nil-missing.rb +12 -0
  352. data/lib/carat/notcopyable.rb +68 -0
  353. data/lib/carat/orderedhash.rb +249 -0
  354. data/lib/carat/ostructable.rb +138 -0
  355. data/lib/carat/parser-old.rb +350 -0
  356. data/lib/carat/parser.rb +393 -0
  357. data/lib/carat/ref.rb +31 -0
  358. data/lib/carat/semaphore.rb +69 -0
  359. data/lib/carat/snapshot.rb +94 -0
  360. data/lib/carat/soundex.rb +104 -0
  361. data/lib/carat/sstruct.rb +223 -0
  362. data/lib/carat/statichash.rb +49 -0
  363. data/lib/carat/tagiter.rb +345 -0
  364. data/lib/carat/timelimit.rb +114 -0
  365. data/lib/carat/timer.rb +99 -0
  366. data/lib/carat/tracepoint.rb +154 -0
  367. data/lib/carat/tuple.rb +31 -0
  368. data/lib/carat/uninheritable.rb +68 -0
  369. data/lib/carat/version.rb +147 -0
  370. data/pub/doc/sstruct.txt +204 -0
  371. data/pub/doc/tagiter.html +145 -0
  372. data/setup.rb +1361 -0
  373. data/test/fixtures/filelist/testfile.txt +1 -0
  374. data/test/fixtures/filelist/testfile2.txt +1 -0
  375. data/test/tc_1st.rb +16 -0
  376. data/test/tc_ansicolor.rb +23 -0
  377. data/test/tc_attr.rb +46 -0
  378. data/test/tc_bbcode.rb +20 -0
  379. data/test/tc_binaryreader.rb +14 -0
  380. data/test/tc_binding_of_caller.rb +2 -0
  381. data/test/tc_byteorder.rb +41 -0
  382. data/test/tc_constant.rb +12 -0
  383. data/test/tc_coroutine.rb +50 -0
  384. data/test/tc_crosscase.rb +33 -0
  385. data/test/tc_duckhunter.rb +37 -0
  386. data/test/tc_dynamic-mixin.rb +66 -0
  387. data/test/tc_enumerable-args.rb +66 -0
  388. data/test/tc_expect.rb +83 -0
  389. data/test/tc_filelist.rb +17 -0
  390. data/test/tc_floatstring.rb +22 -0
  391. data/test/tc_functor.rb +18 -0
  392. data/test/tc_harray.rb +280 -0
  393. data/test/tc_heap.rb +6 -0
  394. data/test/tc_infinity.rb +23 -0
  395. data/test/tc_init.rb +29 -0
  396. data/test/tc_interval.rb +153 -0
  397. data/test/tc_io-reactor.rb +5 -0
  398. data/test/tc_io-redirect.rb +5 -0
  399. data/test/tc_lisp-format.rb +24 -0
  400. data/test/tc_lisp.rb +32 -0
  401. data/test/tc_macro.rb +48 -0
  402. data/test/tc_multiton.rb +188 -0
  403. data/test/tc_nack.rb +31 -0
  404. data/test/tc_nil-as-emptiness.rb +19 -0
  405. data/test/tc_nil-comparable.rb +29 -0
  406. data/test/tc_nil-missing.rb +0 -0
  407. data/test/tc_notcopyable.rb +64 -0
  408. data/test/tc_orderedhash.rb +36 -0
  409. data/test/tc_ostructable.rb +31 -0
  410. data/test/tc_semaphore.rb +5 -0
  411. data/test/tc_snapshot.rb +20 -0
  412. data/test/tc_soundex.rb +19 -0
  413. data/test/tc_sstruct.rb +313 -0
  414. data/test/tc_statichash.rb +24 -0
  415. data/test/tc_tagiter.rb +80 -0
  416. data/test/tc_timelimit.rb +47 -0
  417. data/test/tc_timer.rb +35 -0
  418. data/test/tc_tracepoint.rb +10 -0
  419. data/test/tc_tuple.rb +25 -0
  420. data/test/tc_uninheritable.rb +33 -0
  421. data/test/tc_version.rb +90 -0
  422. metadata +531 -0
@@ -0,0 +1,657 @@
1
+ =begin rdoc
2
+
3
+ = IO-Reactor
4
+
5
+ An object-oriented multiplexing asynchronous IO mechanism for Ruby.
6
+ It is an implementation of the Reactor design pattern for multiplexed
7
+ asynchronous single-thread IO.
8
+
9
+ == Description
10
+
11
+ This module is a pure-Ruby implementation of an asynchronous multiplexed IO
12
+ Reactor which is based on the Reactor design pattern found in _Pattern-Oriented
13
+ Software Architecture, Volume 2: Patterns for Concurrent and Networked
14
+ Objects_. It allows a single thread to demultiplex and dispatch events from one
15
+ or more IO objects to the appropriate handler.
16
+
17
+ This module used to be called Ruby-Poll, and used to use the poll(2) system
18
+ call, but this strategy was not portable, and didn't work with Ruby's
19
+ threads. It now uses IO::select, which should work everywhere Ruby does.
20
+
21
+ I would greatly appreciate feedback on any aspect of this software. Suggestions,
22
+ feature requests, questions, design critiques, and bug reports are most
23
+ welcome. Relevant patches and minimal test cases are particularly helpful. I may
24
+ be reached by email at <ged@FaerieMUD.org>.
25
+
26
+ == Synopsis
27
+
28
+ require 'io/reactor'
29
+ require 'socket'
30
+
31
+ reactorobj = IO::Reactor::new
32
+
33
+ # Open a listening socket on port 1138 and register it with the
34
+ # reactor. When a :read event occurs on it, it means an incoming
35
+ # connection has been established
36
+ sock = TCPServer::new('localhost', 1138)
37
+ reactorobj.register( sock, :read ) {|sock,event|
38
+ case event
39
+ # Accept the incoming connection, registering it also with
40
+ # the reactor; events on client sockets are handled by the
41
+ # #clientHandler method.
42
+ when :read
43
+ clsock = sock.accept
44
+ reactorobj.register( clsock, :read, :write, &method(:clientHandler) )
45
+ # Errors on the main listening socket cause the whole
46
+ # reactor to be shut down
47
+ when :error
48
+ reactorobj.clear
49
+ $stderr.puts "Server error: Shutting down"
50
+ else
51
+ $stderr.puts "Unhandled event: #{event}"
52
+ end
53
+ }
54
+ # Drive the reactor until it's empty with a single thread
55
+ Thread::new { reactorobj.poll until reactorobj.empty? }
56
+
57
+ == Requirements
58
+
59
+ * Ruby >= 1.8.0
60
+
61
+ == More Information
62
+
63
+ You can find more information about IO-Reactor, including the latest version, at
64
+ its project page:
65
+
66
+ http://www.devEiate.org/code/IO-Reactor.shtml
67
+
68
+ == Author
69
+
70
+ Michael Granger <ged@FaerieMUD.org>
71
+
72
+ == License
73
+
74
+ Copyright (c) 2002, 2003 The FaerieMUD Consortium. All rights reserved.
75
+
76
+ IO-Reactor is Open Source Software which is Copyright (c) 2001-2003 by The
77
+ FaerieMUD Consortium.
78
+
79
+ You may use, modify, and/or redistribute this software under the same terms as
80
+ Ruby itself.
81
+
82
+ THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
83
+ INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND
84
+ FITNESS FOR A PARTICULAR PURPOSE.
85
+
86
+ == Version
87
+
88
+ $Id: reactor.rb,v 1.13 2003/08/04 23:56:14 deveiant Exp $
89
+
90
+ =end
91
+
92
+
93
+ require 'delegate'
94
+ require 'rbconfig'
95
+
96
+ ### An object-oriented multiplexing asynchronous IO reactor class.
97
+ class IO::Reactor
98
+
99
+ ### Class constants
100
+ Version = /([\d\.]+)/.match( %q{$Revision: 1.13 $} )[1]
101
+ Rcsid = %q$Id: reactor.rb,v 1.13 2003/08/04 23:56:14 deveiant Exp $
102
+
103
+ ValidEvents = [:read, :write, :error]
104
+
105
+ ### Create and return a new IO reactor object.
106
+ def initialize
107
+ @handles = Hash::new {|hsh,key|
108
+ hsh[ key ] = {
109
+ :events => [],
110
+ :handler => nil,
111
+ :args => [],
112
+ }
113
+ }
114
+ @pendingEvents = Hash::new {|hsh,key| hsh[ key ] = []}
115
+ end
116
+
117
+
118
+ ######
119
+ public
120
+ ######
121
+
122
+ # The Hash of handles (instances of IO or its subclasses) associated with
123
+ # the reactor. The keys are the IO objects, and the values are a Hash of
124
+ # event/s => handler.
125
+ attr_reader :handles
126
+
127
+ # The Hash of unhandled events which occurred in the last call to #poll,
128
+ # keyed by handle.
129
+ attr_reader :pendingEvents
130
+
131
+
132
+ ### Register the specified IO object with the reactor for events given as
133
+ ### <tt>args</tt>. The reactor will test the given <tt>io</tt> for the
134
+ ### events specified whenever #poll is called. See the #poll method for a
135
+ ### list of valid events. If no events are specified, only <tt>:error</tt>
136
+ ### events will be polled for.
137
+ ###
138
+ ### If a <tt>handler</tt> is specified, it will be called whenever the
139
+ ### <tt>io</tt> has any of the specified <tt>events</tt> occur to it. It
140
+ ### should take at least two parameters: the <tt>io</tt> and the event.
141
+ ###
142
+ ### If +args+ contains any objects except the Symbols '<tt>:read</tt>',
143
+ ### '<tt>:write</tt>', or '<tt>:error</tt>', and a +handler+ is specified,
144
+ ### they will be saved and passed to handler for each event.
145
+ ###
146
+ ### Registering a handle will unregister any previously registered
147
+ ### event/handler+arguments pairs associated with the handle.
148
+ def register( io, *args, &handler )
149
+ events = [:read, :write, :error] & args
150
+ args -= events
151
+
152
+ self.unregister( io )
153
+ self.enableEvents( io, *events )
154
+ if handler
155
+ self.setHandler( io, *args, &handler )
156
+ else
157
+ self.setArgs( io, *args )
158
+ end
159
+
160
+ return self
161
+ end
162
+ alias_method :add, :register
163
+
164
+
165
+ ### Add the specified +events+ to the list that will be polled for on the
166
+ ### given +io+ handle.
167
+ def enableEvents( io, *events )
168
+ @handles[ io ][:events] |= events
169
+ end
170
+
171
+
172
+ ### Remove the specified +events+ from the list that will be polled for on
173
+ ### the given +io+ handle.
174
+ def disableEvents( io, *events )
175
+ raise RuntimeError, "Cannot disable the :error event" if
176
+ events.include?( :error )
177
+ @handles[ io ][:events] -= events
178
+ end
179
+
180
+
181
+ ### Set the handler for events on the given +io+ handle to the specified
182
+ ### +handler+. If any +args+ are present, they will be passed as an exploded
183
+ ### array to the handler for each event. Returns the previously-registered
184
+ ### handler, if any.
185
+ def setHandler( io, *args, &handler )
186
+ rval = @handles[ io ][:handler]
187
+ @handles[ io ][:handler] = handler
188
+ self.setArgs( io, *args )
189
+ return rval
190
+ end
191
+
192
+
193
+ ### Remove and return the handler for events on the given +io+ handle.
194
+ def removeHandler( io )
195
+ rval = @handles[ io ][:handler]
196
+ @handles[ io ][:handler] = nil
197
+ self.removeArgs( io )
198
+ return rval
199
+ end
200
+
201
+
202
+ ### Set the additional arguments to pass to the handler for the given +io+
203
+ ### handle on each event to the given +args+.
204
+ def setArgs( io, *args )
205
+ rval = @handles[ io ][:args]
206
+ @handles[ io ][:args] = args
207
+ return rval
208
+ end
209
+
210
+
211
+ ### Remove the arguments for the given handle to the given +args+.
212
+ def removeArgs( io )
213
+ return @handles[ io ][:args].clear
214
+ end
215
+
216
+
217
+ ### Remove the specified <tt>io</tt> from the receiver's list of registered
218
+ ### handles, if present. Returns the handle if it was registered, or
219
+ ### <tt>nil</tt> if it was not.
220
+ def unregister( io )
221
+ @pendingEvents.delete( io )
222
+ @handles.delete( io )
223
+ end
224
+ alias_method :remove, :unregister
225
+
226
+
227
+ ### Returns true if the specified <tt>io</tt> is registered with the poll
228
+ ### object.
229
+ def registered?( io )
230
+ return @handles.has_key?( io )
231
+ end
232
+
233
+
234
+ ### Clear all registered handles from the poll object. Returns the handles
235
+ ### that were cleared.
236
+ def clear
237
+ rv = @handles.keys
238
+
239
+ @pendingEvents.clear
240
+ @handles.clear
241
+
242
+ return rv
243
+ end
244
+
245
+
246
+
247
+ ### Poll the handles registered to the reactor for pending events. The
248
+ ### following event types are defined:
249
+ ###
250
+ ### [<tt>:read</tt>]
251
+ ### Data may be read from the handle without blocking.
252
+ ### [<tt>:write</tt>]
253
+ ### Data may be written to the handle without blocking.
254
+ ### [<tt>:error</tt>]
255
+ ### An error has occurred on the handle. This event type is always
256
+ ### enabled, regardless of whether or not it is passed as one of the
257
+ ### <tt>events</tt>.
258
+ ###
259
+ ### Any handlers specified when the handles were registered are run for
260
+ ### those handles with events. If a block is given, it will be invoked once
261
+ ### for each handle which doesn't have an explicit handler. If no block is
262
+ ### given, events without explicit handlers are inserted into the reactor's
263
+ ### <tt>pendingEvents</tt> attribute.
264
+ ###
265
+ ### The <tt>timeout</tt> argument is the number of floating-point seconds to
266
+ ### wait for an event before returning (ie., fourth argument to the
267
+ ### underlying <tt>select()</tt> call); negative timeout values will cause
268
+ ### #poll to block until there is at least one event to report.
269
+ ###
270
+ ### This method returns the number of handles on which one or more events
271
+ ### occurred.
272
+ def poll( timeout=-1 ) # :yields: io, eventMask
273
+ timeout = timeout.to_f
274
+ @pendingEvents.clear
275
+ count = 0
276
+
277
+ unless @handles.empty?
278
+ timeout = nil if timeout < 0
279
+ eventedHandles = self.getPendingEvents( timeout )
280
+
281
+ # For each event of each io that had an event happen, call any
282
+ # associated callback, or any provided block, or failing both of
283
+ # those, add the event to the hash of unhandled pending events.
284
+ eventedHandles.each {|io,events|
285
+ count += 1
286
+ events.each {|ev|
287
+ args = @handles[ io ][:args]
288
+
289
+ if @handles[ io ][:handler]
290
+ @handles[ io ][:handler].call( io, ev, *args )
291
+ elsif block_given?
292
+ yield( io, ev, *args )
293
+ else
294
+ @pendingEvents[io].push( ev )
295
+ end
296
+ }
297
+ }
298
+ end
299
+
300
+ return count
301
+ end
302
+
303
+
304
+ ### Returns <tt>true</tt> if no handles are associated with the receiver.
305
+ def empty?
306
+ @handles.empty?
307
+ end
308
+
309
+
310
+ #########
311
+ protected
312
+ #########
313
+
314
+ ### Select on the registered handles, returning a Hash of handles => events
315
+ ### for handles which had events occur.
316
+ def getPendingEvents( timeout )
317
+ eventHandles = IO::select( self.getReadHandles, self.getWriteHandles,
318
+ @handles.keys, timeout ) or return {}
319
+ eventHash = Hash::new {|hsh,io| hsh[io] = []}
320
+
321
+ # Fill in the hash with pending events of each type
322
+ [:read, :write, :error].each_with_index {|event,i|
323
+ eventHandles[i].each {|io| eventHash[io].push( event )}
324
+ }
325
+ return eventHash
326
+ end
327
+
328
+
329
+ ### Return an Array of handles which have handlers for the <tt>:read</tt>
330
+ ### event.
331
+ def getReadHandles
332
+ @handles.
333
+ find_all {|io,hsh| hsh[:events].include?( :read )}.
334
+ collect {|io,hsh| io}
335
+ end
336
+
337
+
338
+ ### Return an Array of handles which have handlers for the <tt>:write</tt>
339
+ ### event.
340
+ def getWriteHandles
341
+ @handles.
342
+ find_all {|io,hsh| hsh[:events].include?( :write )}.
343
+ collect {|io,hsh| io}
344
+ end
345
+
346
+
347
+ end # class IO::Reactor
348
+
349
+
350
+ =begin
351
+
352
+ == ChangeLog
353
+
354
+ * 2003-07-21 09:04 Michael Granger <ged@FaerieMUD.org>
355
+
356
+ * README (1.5, RELEASE_0_04):
357
+
358
+ - Changed to IO::Reactor.
359
+
360
+ * 2003-07-21 08:21 Michael Granger <ged@FaerieMUD.org>
361
+
362
+ * install.rb (1.1, RELEASE_0_04):
363
+
364
+ Initial checkin.
365
+
366
+ * 2003-07-21 00:55 Michael Granger <ged@FaerieMUD.org>
367
+
368
+ * test.rb (1.7), utils.rb (1.4), examples/chatserver.rb (1.3),
369
+ lib/io/reactor.rb (1.11), CATALOG (1.2) (utags: RELEASE_0_04):
370
+
371
+ - Refactored into IO::Reactor from Ruby-Poll.
372
+
373
+ * 2003-07-21 00:54 Michael Granger <ged@FaerieMUD.org>
374
+
375
+ * extconf.rb (1.6), poll.c (1.6), lib/poll.rb (1.11):
376
+
377
+ - Removed for IO::Reactor, which no longer needs a C backend.
378
+
379
+ * 2003-05-08 16:49 Michael Granger <ged@FaerieMUD.org>
380
+
381
+ * makesitedocs.rb (1.3, RELEASE_0_04):
382
+
383
+ makesitedocs.rb
384
+
385
+ * 2003-04-20 22:37 Michael Granger <ged@FaerieMUD.org>
386
+
387
+ * test.rb (1.6):
388
+
389
+ Added workaround for recent versions of Test::Unit's API changes.
390
+
391
+ * 2003-04-20 22:34 Michael Granger <ged@FaerieMUD.org>
392
+
393
+ * poll.c (1.5):
394
+
395
+ Added code for simulating poll(2) with rb_thread_select() for machines without a native poll(). Based on code for Freehaven by
396
+ Nick Mathewson <nickm@freehaven.net>.
397
+
398
+ * 2003-04-20 22:32 Michael Granger <ged@FaerieMUD.org>
399
+
400
+ * extconf.rb (1.5):
401
+
402
+ Added fake poll code to allow machines without a poll(2) to use the library. This also might become the primary method of polling, sadly, as Ruby doesn't tolerate other async IO methods very well due to its use of select() for its threading.
403
+
404
+ * 2002-10-20 21:47 Michael Granger <ged@FaerieMUD.org>
405
+
406
+ * lib/: poll.rb (1.10), io/reactor.rb (1.10) (utags: RELEASE_0_03):
407
+
408
+ - Got rid of a type-checking statement, as it didn't account for using an IO
409
+ inside a wrappered or delegated object.
410
+
411
+ - Fixed use of deprecated 'type' method.
412
+
413
+ * 2002-09-18 06:33 Michael Granger <ged@FaerieMUD.org>
414
+
415
+ * makedocs.rb (1.3, RELEASE_0_04, RELEASE_0_03, RELEASE_0_02):
416
+
417
+ - Removed dependence on as-yet-undistributed xhtml RDoc template.
418
+
419
+ * 2002-09-06 10:52 Michael Granger <ged@FaerieMUD.org>
420
+
421
+ * poll.c (1.4, RELEASE_0_03, RELEASE_0_02):
422
+
423
+ - Added interrupt-handling to the _poll call.
424
+
425
+ - Added more-informative debugging.
426
+
427
+ * 2002-07-20 10:07 Michael Granger <ged@FaerieMUD.org>
428
+
429
+ * lib/: poll.rb (1.9), io/reactor.rb (1.9) (utags: RELEASE_0_02):
430
+
431
+ - New method: #setMask().
432
+
433
+ - New method: #callback().
434
+
435
+ - New method: #args().
436
+
437
+ - Implemented the #register() method in terms of the other setter methods to
438
+ consolidate the maintenance of internal data structures.
439
+
440
+ - Added missing callback *args to #setCallback().
441
+
442
+ - Cleared up documentation for #register.
443
+
444
+ * 2002-07-20 10:03 Michael Granger <ged@FaerieMUD.org>
445
+
446
+ * examples/chatserver.rb (1.2, RELEASE_0_03, RELEASE_0_02):
447
+
448
+ - Changed name of user class to 'User' to avoid confusion about its role in the
449
+ server.
450
+
451
+ * 2002-07-20 10:01 Michael Granger <ged@FaerieMUD.org>
452
+
453
+ * test.rb (1.5, RELEASE_0_03, RELEASE_0_02):
454
+
455
+ - Added test for the #callback method.
456
+
457
+ * 2002-07-20 10:01 Michael Granger <ged@FaerieMUD.org>
458
+
459
+ * makedocs.rb (1.2):
460
+
461
+ - Added template argument to make it use the xhtml template.
462
+
463
+ * 2002-07-19 10:29 Michael Granger <ged@FaerieMUD.org>
464
+
465
+ * lib/: poll.rb (1.8), io/reactor.rb (1.8):
466
+
467
+ - Fixed a funny typo.
468
+
469
+ * 2002-07-18 21:58 Michael Granger <ged@FaerieMUD.org>
470
+
471
+ * CATALOG (1.1, RELEASE_0_03, RELEASE_0_02):
472
+
473
+ Initial commit.
474
+
475
+ * 2002-07-18 21:58 Michael Granger <ged@FaerieMUD.org>
476
+
477
+ * utils.rb (1.3, RELEASE_0_03, RELEASE_0_02):
478
+
479
+ - Fixed typo in vetManifest()
480
+
481
+ - Added case to read the documentation CATALOG in the base directory if it's not
482
+ in the docs/ directory.
483
+
484
+ * 2002-07-18 21:55 Michael Granger <ged@FaerieMUD.org>
485
+
486
+ * makesitedocs.rb (1.2, RELEASE_0_03, RELEASE_0_02):
487
+
488
+ - Merged some of the features from the MUES doc-gen script.
489
+
490
+ * 2002-07-18 21:52 Michael Granger <ged@FaerieMUD.org>
491
+
492
+ * lib/: poll.rb (1.7), io/reactor.rb (1.7):
493
+
494
+ - Added callback arguments to the register() method.
495
+
496
+ * 2002-07-18 21:52 Michael Granger <ged@FaerieMUD.org>
497
+
498
+ * test.rb (1.4):
499
+
500
+ - Added test for new "with-args" register() method call.
501
+
502
+ * 2002-07-18 09:42 Michael Granger <ged@FaerieMUD.org>
503
+
504
+ * utils.rb (1.2):
505
+
506
+ - Added a debugMsg function.
507
+
508
+ - Qualified all functions as module_functions.
509
+
510
+ * 2002-07-18 09:40 Michael Granger <ged@FaerieMUD.org>
511
+
512
+ * lib/: poll.rb (1.6), io/reactor.rb (1.6):
513
+
514
+ - Fixed some typos
515
+
516
+ - Added clarification and additional documentation for some methods.
517
+
518
+ * 2002-07-18 09:35 Michael Granger <ged@FaerieMUD.org>
519
+
520
+ * README (1.4, RELEASE_0_03, RELEASE_0_02):
521
+
522
+ - Fixed a typo.
523
+
524
+ * 2002-04-18 16:53 Michael Granger <ged@FaerieMUD.org>
525
+
526
+ * extconf.rb (1.4, RELEASE_0_03, RELEASE_0_02):
527
+
528
+ - Corrected a bug in the header =:)
529
+
530
+ * 2002-04-18 12:01 Michael Granger <ged@FaerieMUD.org>
531
+
532
+ * makedist.rb (1.1, RELEASE_0_04, RELEASE_0_03, RELEASE_0_02),
533
+ makesitedocs.rb (1.1), utils.rb (1.1) (utags: RELEASE_0_01):
534
+
535
+ Initial commit
536
+
537
+ * 2002-04-18 11:24 Michael Granger <ged@FaerieMUD.org>
538
+
539
+ * extconf.rb (1.3, RELEASE_0_01):
540
+
541
+ - Corrected path to the docs-generation script.
542
+
543
+ * 2002-04-18 10:23 Michael Granger <ged@FaerieMUD.org>
544
+
545
+ * makedocs.rb (1.1, RELEASE_0_01):
546
+
547
+ Initial commit
548
+
549
+ * 2002-04-18 10:23 Michael Granger <ged@FaerieMUD.org>
550
+
551
+ * poll.c (1.3, RELEASE_0_01):
552
+
553
+ - Added some comments for RDoc, should it ever parse protected methods.
554
+
555
+ - Changed the name of the second arg to _poll() to handleArray, as it wasn't
556
+ really an array of file descriptors.
557
+
558
+ * 2002-04-18 08:44 Michael Granger <ged@FaerieMUD.org>
559
+
560
+ * test.rb (1.3, RELEASE_0_01):
561
+
562
+ - Removed the "ext" dir from the ones being added to the LOAD_PATH, as it's gone
563
+ away.
564
+
565
+ - Removed a require left over from the failed tempfile experiment.
566
+
567
+ * 2002-04-18 08:43 Michael Granger <ged@FaerieMUD.org>
568
+
569
+ * extconf.rb (1.2):
570
+
571
+ - Moved the ext/extconf.rb stuff into this one because the ext directory is
572
+ going away.
573
+
574
+ * 2002-04-18 08:42 Michael Granger <ged@FaerieMUD.org>
575
+
576
+ * README (1.3, RELEASE_0_01):
577
+
578
+ - Changed from alpha to beta
579
+
580
+ - Added requirements section
581
+
582
+ - Modified installation section to use 'site-install' instead of 'install', and
583
+ took stuff out that would have been redundant with the requires section.
584
+
585
+ * 2002-04-17 15:34 Michael Granger <ged@FaerieMUD.org>
586
+
587
+ * lib/: poll.rb (1.5), io/reactor.rb (1.5) (utags: RELEASE_0_01):
588
+
589
+ - Added :yeilds: RDoc construct to #poll.
590
+
591
+ * 2002-04-17 15:20 Michael Granger <ged@FaerieMUD.org>
592
+
593
+ * README (1.2):
594
+
595
+ - Separated abstract from header.
596
+
597
+ * 2002-04-17 15:18 Michael Granger <ged@FaerieMUD.org>
598
+
599
+ * lib/: poll.rb (1.4), io/reactor.rb (1.4):
600
+
601
+ - Clarified abstract.
602
+
603
+ * 2002-04-17 15:14 Michael Granger <ged@FaerieMUD.org>
604
+
605
+ * README (1.1):
606
+
607
+ Initial commit
608
+
609
+ * 2002-04-17 07:03 Michael Granger <ged@FaerieMUD.org>
610
+
611
+ * lib/: poll.rb (1.3), io/reactor.rb (1.3):
612
+
613
+ - Fixed documentation for the EventMask bitwise operators.
614
+
615
+ * 2002-04-17 06:48 Michael Granger <ged@FaerieMUD.org>
616
+
617
+ * lib/: poll.rb (1.2), io/reactor.rb (1.2):
618
+
619
+ - Re-implemented after the first one was wiped out by extconf.
620
+
621
+ * 2002-04-17 06:47 Michael Granger <ged@FaerieMUD.org>
622
+
623
+ * poll.c (1.2):
624
+
625
+ - Added shortcut constants
626
+
627
+ - Added _GNU_SOURCE define to catch the additional poll.h constants under Linux
628
+
629
+ - Changed _poll to a protected method.
630
+
631
+ * 2002-04-17 06:46 Michael Granger <ged@FaerieMUD.org>
632
+
633
+ * test.rb (1.2):
634
+
635
+ - Added lots of stuff, redesigned to match the new API
636
+
637
+ * 2002-04-17 06:45 Michael Granger <ged@FaerieMUD.org>
638
+
639
+ * examples/chatserver.rb (1.1, RELEASE_0_01):
640
+
641
+ Initial commit
642
+
643
+ * 2002-04-16 04:47 Michael Granger <ged@FaerieMUD.org>
644
+
645
+ * extconf.rb (1.1), poll.c (1.1), test.rb (1.1), lib/poll.rb (1.1),
646
+ lib/io/reactor.rb (1.1):
647
+
648
+ Initial revision
649
+
650
+ * 2002-04-16 04:47 Michael Granger <ged@FaerieMUD.org>
651
+
652
+ * extconf.rb (1.1.1.1), poll.c (1.1.1.1), test.rb (1.1.1.1),
653
+ lib/poll.rb (1.1.1.1), lib/io/reactor.rb (1.1.1.1) (utags: IMPORT):
654
+
655
+ Initial import
656
+
657
+ =end