carats 0.3.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 (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,29 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/init'
4
+
5
+
6
+ # fixture
7
+
8
+ class T
9
+ attr_reader :x, :y
10
+ def init
11
+ @x = 1
12
+ @y = 2
13
+ end
14
+ end
15
+
16
+ # test
17
+
18
+ class TC_Init < Test::Unit::TestCase
19
+
20
+ def setup
21
+ @a = T.new
22
+ end
23
+
24
+ def test_init
25
+ assert_equal(1, @a.x)
26
+ assert_equal(2, @a.y)
27
+ end
28
+
29
+ end
@@ -0,0 +1,153 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/interval'
4
+
5
+
6
+ class InclusiveTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @a = Interval.new( 1, 10 )
10
+ @b = Interval.new( 1, 10, true, false )
11
+ @c = Interval.new( 1, 10, false, true )
12
+ @d = Interval.new( 1, 10, true, true )
13
+ end
14
+
15
+ def test_001A ; assert_equal( false, @a.include?(0) ) ; end
16
+ def test_002A ; assert_equal( true, @a.include?(1) ) ; end
17
+ def test_003A ; assert_equal( true, @a.include?(2) ) ; end
18
+ def test_004A ; assert_equal( true, @a.include?(9) ) ; end
19
+ def test_005A ; assert_equal( true, @a.include?(10) ) ; end
20
+ def test_006A ; assert_equal( false, @a.include?(11) ) ; end
21
+
22
+ def test_001B ; assert_equal( false, @b.include?(0) ) ; end
23
+ def test_002B ; assert_equal( false, @b.include?(1) ) ; end
24
+ def test_003B ; assert_equal( true, @b.include?(2) ) ; end
25
+ def test_004B ; assert_equal( true, @b.include?(9) ) ; end
26
+ def test_005B ; assert_equal( true, @b.include?(10) ) ; end
27
+ def test_006B ; assert_equal( false, @b.include?(11) ) ; end
28
+
29
+ def test_001C ; assert_equal( false, @c.include?(0) ) ; end
30
+ def test_002C ; assert_equal( true, @c.include?(1) ) ; end
31
+ def test_003C ; assert_equal( true, @c.include?(2) ) ; end
32
+ def test_004C ; assert_equal( true, @c.include?(9) ) ; end
33
+ def test_005C ; assert_equal( false, @c.include?(10) ) ; end
34
+ def test_006C ; assert_equal( false, @c.include?(11) ) ; end
35
+
36
+ def test_001D ; assert_equal( false, @d.include?(0) ) ; end
37
+ def test_002D ; assert_equal( false, @d.include?(1) ) ; end
38
+ def test_003D ; assert_equal( true, @d.include?(2) ) ; end
39
+ def test_004D ; assert_equal( true, @d.include?(9) ) ; end
40
+ def test_005D ; assert_equal( false, @d.include?(10) ) ; end
41
+ def test_006D ; assert_equal( false, @d.include?(11) ) ; end
42
+
43
+ end
44
+
45
+
46
+ class LrgNumericTest < Test::Unit::TestCase
47
+
48
+ def setup
49
+ @a = Interval.new(0,100000000)
50
+ @b = Interval.new(0,100000000)
51
+ end
52
+
53
+ def test_001A ; assert_equal( true, @a.include?(0) ) ; end
54
+ def test_002A ; assert_equal( true, @a.include?(1000) ) ; end
55
+ def test_003A ; assert_equal( true, @a.include?(1000000) ) ; end
56
+ def test_004A ; assert_equal( true, @a.include?(100000000) ) ; end
57
+ #def test_005A ; assert_equal( false, @a.include?(INFINITY) ) ; end
58
+
59
+ def test_001B ; assert_equal( true, @b.include?(0) ) ; end
60
+ def test_002B ; assert_equal( true, @b.include?(5) ) ; end
61
+ def test_002B ; assert_equal( true, @b.include?(70007) ) ; end
62
+ def test_002B ; assert_equal( true, @b.include?(5000005) ) ; end
63
+ #def test_002B ; assert_equal( false, @b.include?(INFINITY) ) ; end
64
+
65
+ end
66
+
67
+
68
+ =begin
69
+ class InfTest < Test::Unit::TestCase
70
+
71
+ def setup
72
+ @a = Interval.new( -INFINITY, -3 )
73
+ @b = Interval.new( -INFINITY, -3, true, false )
74
+ @c = Interval.new( -3, INFINITY )
75
+ @d = Interval.new( -INFINITY, INFINITY )
76
+ @e = Interval.new( -3, -2 )
77
+ end
78
+
79
+ def test_001A ; assert_equal( true, @a.include?(-INFINITY) ) ; end
80
+ def test_002A ; assert_equal( true, @a.include?(-4) ) ; end
81
+ def test_003A ; assert_equal( true, @a.include?(-3) ) ; end
82
+ def test_004A ; assert_equal( false, @a.include?(-2) ) ; end
83
+ def test_005A ; assert_equal( false, @a.include?(INFINITY) ) ; end
84
+
85
+ def test_001B ; assert_equal( true, @b.include?(-INFINITY) ) ; end
86
+ def test_002B ; assert_equal( true, @b.include?(-4) ) ; end
87
+ def test_003B ; assert_equal( false, @b.include?(-3) ) ; end
88
+ def test_004B ; assert_equal( false, @b.include?(-2) ) ; end
89
+ def test_005B ; assert_equal( false, @b.include?(INFINITY) ) ; end
90
+
91
+ def test_001C ; assert_equal( false, @c.include?(-INFINITY) ) ; end
92
+ def test_002C ; assert_equal( false, @c.include?(-4) ) ; end
93
+ def test_003C ; assert_equal( true, @c.include?(-3) ) ; end
94
+ def test_004C ; assert_equal( true, @c.include?(-2) ) ; end
95
+ def test_005C ; assert_equal( true, @c.include?(INFINITY) ) ; end
96
+
97
+ def test_001D ; assert_equal( true, @d.include?(-INFINITY) ) ; end
98
+ def test_002D ; assert_equal( true, @d.include?(-4) ) ; end
99
+ def test_003D ; assert_equal( true, @d.include?(-3) ) ; end
100
+ def test_004D ; assert_equal( true, @d.include?(-2) ) ; end
101
+ def test_005D ; assert_equal( true, @d.include?(INFINITY) ) ; end
102
+
103
+ def test_001E ; assert_equal( false, @e.include?(-INFINITY) ) ; end
104
+ def test_002E ; assert_equal( false, @e.include?(-4) ) ; end
105
+ def test_003E ; assert_equal( true, @e.include?(-3) ) ; end
106
+ def test_004E ; assert_equal( true, @e.include?(-2) ) ; end
107
+ def test_005E ; assert_equal( false, @e.include?(INFINITY) ) ; end
108
+
109
+ end
110
+ =end
111
+
112
+
113
+ class SelectTest < Test::Unit::TestCase
114
+
115
+ def setup
116
+ @a = Interval.new( 0,10 )
117
+ end
118
+
119
+ def test_001
120
+ b = @a.collect( 2 ){ |n| n }
121
+ assert_equal( [0,2,4,6,8,10], b )
122
+ end
123
+
124
+ def test_002
125
+ b = @a.select{ |n| n % 2 == 0 }
126
+ assert_equal( [0,2,4,6,8,10], b )
127
+ end
128
+
129
+ def test_003
130
+ b = @a.collect( 1,2 ){ |n| n }
131
+ assert_equal( [0,5,10], b )
132
+ end
133
+
134
+ def test_004
135
+ b = @a.select( 1,2 ){ |n| n % 2 == 0 }
136
+ assert_equal( [0,10], b )
137
+ end
138
+
139
+ end
140
+
141
+
142
+ class ArrayTest < Test::Unit::TestCase
143
+
144
+ def setup
145
+ @a = Interval.new( 0,10 )
146
+ @b = Interval.new( 0,1 )
147
+ end
148
+
149
+ def test_001A ; assert_equal( [0,5,10], @a.to_a(1,2) ) ; end
150
+
151
+ def test_001B ; assert_equal( [0, 0.25, 0.5, 0.75, 1.0], @b.to_a(1,4) ) ; end
152
+
153
+ end
@@ -0,0 +1,5 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/io-reactor.rb'
4
+
5
+ # TODO
@@ -0,0 +1,5 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/io-redirect.rb'
4
+
5
+ # TODO
@@ -0,0 +1,24 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/lisp-format'
4
+
5
+
6
+ class FormatTest < Test::Unit::TestCase
7
+
8
+ def test_decimal
9
+ assert( Lisp.format("~D", 1) == "1" )
10
+ end
11
+
12
+ def test_decimal_params
13
+ assert( Lisp.format("~5,'-D~6D", 1, 2) == "----1 2" )
14
+ end
15
+
16
+ def test_decimal_modifiers
17
+ assert( Lisp.format("~5,'-,'.:@D~@D", 1013, 2) == "+1.013+2" )
18
+ assert( Lisp.format("~7,,,2:@D~@D", 1013, 2) == " +10,13+2" )
19
+ end
20
+
21
+ # Tests for ~v, ~V, ~#
22
+
23
+ end
24
+
@@ -0,0 +1,32 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/lisp'
4
+
5
+ # fixture
6
+
7
+ class T
8
+
9
+ include Lisp
10
+
11
+ (def accumulate (fun, x, list)
12
+ (if (null? list)
13
+ x
14
+ else
15
+ (accumulate fun, (fun.call x, (car list)), (cdr list))
16
+ end)
17
+ end)
18
+
19
+ end
20
+
21
+ # test
22
+
23
+ class TC_Lisp < Test::Unit::TestCase
24
+
25
+ include Lisp
26
+
27
+ def test_accumulate
28
+ t = T.new
29
+ t.accumulate( proc{ |x,y| x+y }, 0, [1,2,3] )
30
+ end
31
+
32
+ end
@@ -0,0 +1,48 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/macro'
4
+
5
+
6
+ # fixture
7
+
8
+ module Mixin
9
+ macro { |options| %{
10
+ def hello
11
+ '#{options[:name]}'
12
+ end
13
+ } }
14
+ end
15
+
16
+ class MyClass1
17
+ include Mixin, :name => 'tml1'
18
+ end
19
+
20
+ class MyClass2
21
+ include Mixin, :name => 'tml2'
22
+ end
23
+
24
+ class MyClass3
25
+ extend Mixin, :name => 'TML'
26
+ end
27
+
28
+
29
+ # test
30
+
31
+ class TC_Macro < Test::Unit::TestCase
32
+
33
+ def setup
34
+ @m1 = MyClass1.new
35
+ @m2 = MyClass2.new
36
+ end
37
+
38
+ def test_include
39
+ assert_equal( 'tml1', @m1.hello )
40
+ assert_equal( 'tml2', @m2.hello )
41
+ assert_equal( 'tml1', @m1.hello )
42
+ end
43
+
44
+ def test_extend
45
+ assert_equal( 'TML', MyClass3.hello )
46
+ end
47
+
48
+ end
@@ -0,0 +1,188 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/multiton'
4
+
5
+ #
6
+ # EXAMPLE A - STANDARD USAGE
7
+ #
8
+ class TC_Multiton_A < Test::Unit::TestCase
9
+
10
+ class SomeMultitonClass
11
+ include Multiton
12
+ attr :arg
13
+ def initialize(arg)
14
+ @arg = arg
15
+ end
16
+ end
17
+
18
+ def test_standard
19
+
20
+ a = SomeMultitonClass.instance(4)
21
+ b = SomeMultitonClass.instance(4) # a and b are same object
22
+ c = SomeMultitonClass.instance(2) # c is a different object
23
+
24
+ assert_equal( a, b )
25
+ assert_equal( 42, [a.arg,b.arg].max * 10 + c.arg )
26
+
27
+ end
28
+
29
+ end
30
+
31
+
32
+ #
33
+ # EXAMPLE B - MODIFY AN EXISTING CLASS, SHARED FILEHANDLES
34
+ #
35
+ class TC_Multiton_B < Test::Unit::TestCase
36
+
37
+ class ::File
38
+ include Multiton
39
+ end
40
+
41
+ def test_modify_existing
42
+
43
+ lineno = __LINE__
44
+ # HERE1
45
+ # HERE2
46
+
47
+ a = File.instance(__FILE__)
48
+ b = File.instance(__FILE__)
49
+
50
+ assert_equal( a, b )
51
+
52
+ lineno.times{ a.gets }
53
+
54
+ assert_equal( "# HERE1", a.gets.strip )
55
+ assert_equal( "# HERE2", b.gets.strip )
56
+
57
+ end
58
+
59
+ end
60
+
61
+ #
62
+ # EXAMPLE C - INHERITENCE
63
+ #
64
+ class TC_Multiton_C < Test::Unit::TestCase
65
+
66
+ class A < String
67
+ include Multiton
68
+ end
69
+
70
+ # B is also a multiton - with it's OWN object cache
71
+ class B < A; end
72
+
73
+ def test_inheritence
74
+
75
+ # w is the same object as x, y is the same object as z
76
+ w,x,y,z = A.instance('A'), A.instance('A'), B.instance('B'), B.instance('B')
77
+
78
+ assert_equal( w.object_id, x.object_id ) # -> true
79
+ assert_equal( y.object_id, z.object_id ) # -> true
80
+
81
+ a = B.instance('A')
82
+ b = B.instance('A')
83
+
84
+ assert_not_equal( a.object_id, w.object_id ) # -> false (each class has it's own pool)
85
+ assert_equal( a.object_id, b.object_id ) # -> true
86
+
87
+ end
88
+
89
+ end
90
+
91
+
92
+ #
93
+ # EXAMPLE D - MULTIPLE MODULE INCLUSION (does nothing)
94
+ #
95
+ class TC_Multiton_D < Test::Unit::TestCase
96
+
97
+ class A < String
98
+ include Multiton
99
+ end
100
+
101
+ # B is also a multiton - with it's OWN object cache
102
+ class B < A; end
103
+
104
+ def test_multiple
105
+
106
+ # w is the same object as x, y is the same object as z
107
+ w,x,y,z = A.instance('A'), A.instance('A'), B.instance('B'), B.instance('B')
108
+
109
+ yz_id = y.object_id || z.object_id
110
+
111
+ B.class_eval {
112
+ include Multiton
113
+ }
114
+
115
+ # y is not only the same object as z, but they are both the same object(s)
116
+ # as from EXAMPLE C
117
+
118
+ y,z = B.instance('B'), B.instance('B')
119
+
120
+ assert_equal( y.object_id, yz_id ) # -> true
121
+ assert_equal( z.object_id, yz_id ) # -> true
122
+
123
+ end
124
+
125
+ end
126
+
127
+
128
+ #
129
+ # EXAMPLE E - SO YOU WANNA USE NEW INSTEAD OF INSTANCE...
130
+ #
131
+ class TC_Multiton_E < Test::Unit::TestCase
132
+
133
+ module K
134
+ # use an inner class which is itself a multiton
135
+ class K < String; include Multiton; end
136
+
137
+ # define a new which returns a mutltion using #instance...
138
+ class << self
139
+ def new(*args, &block)
140
+ K.instance *args, &block
141
+ end
142
+ end
143
+ end
144
+
145
+ def test_new
146
+
147
+ the = K.new '4'
148
+ answer = K.new '2'
149
+
150
+ assert_equal( "42", sprintf( "%s%s", the, answer ) ) #-> 42
151
+ assert_equal( K::K, the.class ) #-> K::K
152
+
153
+ end
154
+
155
+ end
156
+
157
+
158
+ #
159
+ # EXAMPLE F - using Klass.multiton_id
160
+ #
161
+ class TC_Multiton_F < Test::Unit::TestCase
162
+
163
+ class Klass
164
+ include Multiton
165
+
166
+ def initialize( important, not_important )
167
+ @important, @not_important = important, not_important
168
+ end
169
+
170
+ def Klass.multiton_id(*args, &block)
171
+ # we consider only the first arg
172
+ important, not_important = *args
173
+ important
174
+ end
175
+ end
176
+
177
+ def test_using_id
178
+ a = Klass.instance( :a, :b )
179
+ b = Klass.instance( :a, :c )
180
+ c = Klass.instance( :b, :b )
181
+
182
+ assert_equal( a, b )
183
+ assert_not_equal( a, c )
184
+ assert_not_equal( b, c )
185
+ end
186
+
187
+ end
188
+