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,62 @@
1
+ #
2
+ #class Symbol
3
+ # def ~@
4
+ # return self, "#{self}=".intern
5
+ # end
6
+ #end
7
+
8
+ class Object
9
+ def iv; @iv; end
10
+ private :iv
11
+ end
12
+
13
+ class Module
14
+
15
+ def var(*vars)
16
+ vars.flatten.each do |v|
17
+ s = v.to_s
18
+ case s[-1..-1]
19
+ when '='
20
+ s = s[0..-2]
21
+ class_eval <<-EOS
22
+ def #{s}=(arg)
23
+ iv[:#{s}] = arg
24
+ iv[:#{s}]
25
+ end
26
+ EOS
27
+ else
28
+ class_eval <<-EOS
29
+ def #{v}(*args)
30
+ iv[:#{v}] = args[0] if !args.empty?
31
+ iv[:#{v}]
32
+ end
33
+ EOS
34
+ end
35
+ end
36
+ return *vars
37
+ end
38
+ end
39
+
40
+ class Class
41
+ alias_method :new_orig, :new
42
+ def new(*args, &block)
43
+ o = new_orig(*args, &block)
44
+ o.instance_variable_set('@iv',{})
45
+ o
46
+ end
47
+ end
48
+
49
+ class Module
50
+ PVars = {}
51
+ #def var(*vars)
52
+ # vars.each do |v|
53
+ # class_eval <<-EOS
54
+ # def #{v}(*args)
55
+ # PVars[self] ||= {}
56
+ # PVars[self][#{v}] = args[0] if !args.empty?
57
+ # PVars[self][#{v}]
58
+ # end
59
+ # EOS
60
+ # end
61
+ #end
62
+ end
@@ -0,0 +1,58 @@
1
+ # $Id: 1st.rb, v0.2 2004/08/21 transami Exp $
2
+
3
+ =begin rdoc
4
+
5
+ = 1st Class Methods
6
+
7
+ Easy access to method as objects. And they retain state!
8
+
9
+ === Example
10
+
11
+ def hello
12
+ puts "Hello World!"
13
+ end
14
+ p method(:hello) #=> <Method: #hello>
15
+
16
+ == Comments
17
+
18
+ I think the best solution would be using the notation
19
+ <tt>::ameth</tt>. This would require some minor changes
20
+ to Ruby, but with few backward incompatabilites if
21
+ parantheticals revert back to the actual method invocation.
22
+ Although this later stipulation means capitalized methods
23
+ would not be accessible in this way b/c they would intefere with
24
+ constant lookup. It's a trade off.
25
+
26
+ # Current Proposed Alternative
27
+ Foo.Bar() # method call method call method call
28
+ Foo.Bar # method call method call method call
29
+ Foo.bar() # method call method call method call
30
+ Foo.bar # method call method call method call
31
+ Foo::Bar() # method call method call 1st class method
32
+ Foo::Bar # constant lookup constant lookup constant lookup
33
+ Foo::bar() # method call method call 1st class method
34
+ Foo::bar # method call 1st class method 1st class method
35
+
36
+ Then again this dosen't address bound versus unbound.
37
+
38
+ Which do you prefer?
39
+
40
+ == Legal
41
+
42
+ Ruby License Copyright (c) 2004 Thomas Sawyer
43
+
44
+ =end
45
+
46
+ class Object
47
+ alias_method :method_pre1st, :method
48
+ def method(s)
49
+ ( @__methods__ ||= {} )[s] ||= method_pre1st(s)
50
+ end
51
+ end
52
+ # not needed
53
+ #class Module
54
+ # alias_method :instance_method_pre1st, :instance_method
55
+ # def instance_method(s)
56
+ # ( @__instance_methods__ ||= {} )[s] ||= instance_method_pre1st(s)
57
+ # end
58
+ #end
@@ -0,0 +1,122 @@
1
+ =begin rdoc
2
+
3
+ = ANSIColor
4
+
5
+ == Synopsis
6
+
7
+ require 'trix/ansicolor'
8
+ include Term::ANSIColor
9
+
10
+ p red, "Hello", blue "World"
11
+ => "\e[31mHello\e[34mWorld"
12
+
13
+ p red { "Hello" } + blue { "World" }
14
+ => "\e[31mHello\e[0m\e[34mWorld\e[0m"
15
+
16
+ == Author
17
+
18
+ * Florian Frank <flori@ping.de>
19
+
20
+ == Legal
21
+
22
+ Copyright (c)2002-2004 Florian Frank
23
+
24
+ GNU General Public License (GPL)
25
+
26
+ == History
27
+
28
+ 2004-11-30 v0.5 * Ported to Trix collection (transami)
29
+
30
+ 2004-09-28 v0.4 * First release on Rubyforge
31
+ * Supports Rubygems now
32
+
33
+ 2003-10-09 v0.3 * Added uncolored method as suggested by
34
+ Thomas Husterer <Thomas.Husterer@heidelberg.com>
35
+ * Added attribute methods with string arguments
36
+ * Deleted now unused files
37
+
38
+ 2002-07-27 v0.2 * Minor Code Cleanup
39
+ * Added cdiff.rb
40
+
41
+ 2002-06-12 v0.1 * Initial Release
42
+
43
+ =end
44
+
45
+ module Term
46
+
47
+ module ANSIColor
48
+
49
+ @@attributes = [
50
+ [ :clear , 0 ],
51
+ [ :reset , 0 ], # synonym for :clear
52
+ [ :bold , 1 ],
53
+ [ :dark , 2 ],
54
+ [ :italic , 3 ], # not widely implemented
55
+ [ :underline , 4 ],
56
+ [ :underscore , 4 ], # synonym for :underline
57
+ [ :blink , 5 ],
58
+ [ :rapid_blink , 6 ], # not widely implemented
59
+ [ :negative , 7 ], # no reverse because of String#reverse
60
+ [ :concealed , 8 ],
61
+ [ :strikethrough, 9 ], # not widely implemented
62
+ [ :black , 30 ],
63
+ [ :red , 31 ],
64
+ [ :green , 32 ],
65
+ [ :yellow , 33 ],
66
+ [ :blue , 34 ],
67
+ [ :magenta , 35 ],
68
+ [ :cyan , 36 ],
69
+ [ :white , 37 ],
70
+ [ :on_black , 40 ],
71
+ [ :on_red , 41 ],
72
+ [ :on_green , 42 ],
73
+ [ :on_yellow , 43 ],
74
+ [ :on_blue , 44 ],
75
+ [ :on_magenta , 45 ],
76
+ [ :on_cyan , 46 ],
77
+ [ :on_white , 47 ],
78
+ ]
79
+
80
+ @@attributes.each do |c, v|
81
+ eval %Q{
82
+ def #{c.to_s}(string = nil)
83
+ result = "\e[#{v}m"
84
+ if block_given?
85
+ result << yield
86
+ result << "\e[0m"
87
+ elsif string
88
+ result << string
89
+ result << "\e[0m"
90
+ elsif respond_to?(:to_str)
91
+ result << self
92
+ result << "\e[0m"
93
+ end
94
+ return result
95
+ end
96
+ }
97
+ end
98
+
99
+ ColoredRegexp = /\e\[([34][0-7]|[0-9])m/
100
+
101
+ def uncolored(string = nil)
102
+ if block_given?
103
+ yield.gsub(ColoredRegexp, '')
104
+ elsif string
105
+ string.gsub(ColoredRegexp, '')
106
+ elsif respond_to?(:to_str)
107
+ gsub(ColoredRegexp, '')
108
+ else
109
+ ''
110
+ end
111
+ end
112
+
113
+ module_function
114
+
115
+ def attributes
116
+ @@attributes.map { |c| c[0] }
117
+ end
118
+
119
+ end
120
+
121
+ end
122
+
@@ -0,0 +1,342 @@
1
+ =begin
2
+
3
+ $Title: Accessors $
4
+ $Author: transami $
5
+ $Date: 2004-10-06 13:56:57 $
6
+
7
+ = Description
8
+
9
+ The Bill wants more from attributes.
10
+
11
+ = Usage
12
+
13
+ == Using Cast Attribute Accessors
14
+
15
+ # simple type casting
16
+ attr_reader :a => :to_s
17
+
18
+ # fancy type casting
19
+ attr_reader :a => 'to_s.capitalize'
20
+
21
+ # a powerful reader!
22
+ attr_reader :a => fn{ |x| eval x }
23
+
24
+ # a writer that type checks (use type.rb)
25
+ attr_writer :a => fn{ |x| big4 x }
26
+
27
+ # backwards compatible, cast attributes go at the end
28
+ attr_accessor :x, :y, :a => :to_s
29
+
30
+ # they can also be grouped
31
+ attr_accessor [:x, :y] => :to_s
32
+
33
+ == Using Accessor Shorthand
34
+
35
+ A nice shorthand is provided.
36
+
37
+ attr :r, :a, :a=, :w=
38
+
39
+ This is the same as doing
40
+
41
+ attr_reader :r
42
+ attr_accessor :a
43
+ attr_writer :w
44
+
45
+ Also
46
+
47
+ attr :b?, :b!
48
+
49
+ creating
50
+
51
+ def b?
52
+ @b ? true : @b
53
+ end
54
+
55
+ def b!(x)
56
+ @b.replace(x)
57
+ end
58
+
59
+ The shorthand notation can be used with casting too.
60
+
61
+ attr :a => :to_s
62
+
63
+ == Using Return Value
64
+
65
+ Attribute methods now return a list of the methods created.
66
+ This can then be passed to other useful methods.
67
+
68
+ private attr :a
69
+
70
+ = Authenticate
71
+
72
+ Copyright (C) 2002 T. Sawyer
73
+ Ruby Distribute License
74
+
75
+ This program is free software.
76
+ You can distribute/modify this program under
77
+ the terms of the Ruby Distribute License.
78
+
79
+ =end
80
+
81
+ #require 'facet/hash/update_each'
82
+
83
+ # Modify module attribute methods.
84
+ # *add define_attribute
85
+ # *redefine old attr_* methods
86
+ # *add attr_setter
87
+
88
+ class Module
89
+
90
+ # Create an attribute method for reading an
91
+ # instance variable. This is the same as the built
92
+ # in method, which it replaces, but adds casting.
93
+ #
94
+ # Casting allows the addition of a method invocation
95
+ # on the instance variable. It is defined using a hash
96
+ # parameter, so all castings must come at the end of a
97
+ # call to attr_reader.
98
+ #
99
+ # require 'carat/attr'
100
+ #
101
+ # attr_reader :a => :to_s
102
+ #
103
+ # _is equivalent to_
104
+ #
105
+ # def a
106
+ # @a.to_s
107
+ # end
108
+ #
109
+ def attr_reader(*args)
110
+ made = []
111
+ if Hash === args.last
112
+ args.concat( args.pop.to_a )
113
+ end
114
+ #hargs = (Hash === args.last ? args.pop : {})
115
+ args.each { |a,c|
116
+ a = a.to_s.strip
117
+ c = ".#{c.to_s.strip}".chomp('.')
118
+ module_eval %Q{ def #{a}; @#{a}#{c} ; end }
119
+ made << "#{a}".to_sym
120
+ }
121
+ (@__atributes__ ||= []).concat( made )
122
+ return *made
123
+ end
124
+
125
+ # Create an attribute method for writing to an
126
+ # instance variable. This is the same as the built
127
+ # in method, which it replaces, but adds casting.
128
+ #
129
+ # Casting allows the addition of a method invocation
130
+ # on the instance variable. It is defined using a hash
131
+ # parameter, so all castings must come at the end of a
132
+ # call to attr_writer.
133
+ #
134
+ # require 'carat/attr'
135
+ #
136
+ # attr_writer :a => :to_s
137
+ #
138
+ # _is equivalent to_
139
+ #
140
+ # def a=(x)
141
+ # @a = x.to_s
142
+ # end
143
+ #
144
+ def attr_writer(*args)
145
+ made = []
146
+ if Hash === args.last
147
+ args.concat( args.pop.to_a )
148
+ end
149
+ #hargs = (Hash === args.last ? args.pop : {})
150
+ args.each { |a,c|
151
+ a = a.to_s.strip.chomp('=').chomp('!')
152
+ c = ".#{c.to_s.strip}".chomp('.')
153
+ module_eval %Q{ def #{a}=(x); @#{a}=x#{c}; end }
154
+ made << "#{a}=".to_sym
155
+ }
156
+ (@__atributes__ ||= []).concat( made )
157
+ return *made
158
+ end
159
+
160
+ # Create an attribute method for writing to an
161
+ # instance variable. This is the same as the built
162
+ # in method, which it replaces, but adds casting.
163
+ #
164
+ # Casting allows the addition of a method invocation
165
+ # on the instance variable. It is defined using a hash
166
+ # parameter, so all castings must come at the end of a
167
+ # call to attr_writer.
168
+ #
169
+ # require 'carat/attr'
170
+ #
171
+ # attr_accessor :a => :to_s
172
+ #
173
+ # _is equivalent to_
174
+ #
175
+ # def a
176
+ # @a.to_s
177
+ # end
178
+ #
179
+ # def a=(x)
180
+ # @a = x.to_s
181
+ # end
182
+ #
183
+ def attr_accessor(*args)
184
+ made = []
185
+ if Hash === args.last
186
+ args.concat( args.pop.to_a )
187
+ end
188
+ #hargs = (Hash === args.last ? args.pop : {})
189
+ args.each { |a,c|
190
+ a = a.to_s.strip.chomp('=')
191
+ c = ".#{c.to_s.strip}".chomp('.')
192
+ module_eval %Q{ def #{a}; @#{a}#{c} ; end }
193
+ module_eval %Q{ def #{a}=(x); @#{a}=x#{c}; end }
194
+ made << "#{a}".to_sym
195
+ made << "#{a}=".to_sym
196
+ }
197
+ (@__atributes__ ||= []).concat( made )
198
+ return *made
199
+ end
200
+
201
+ # Create an attribute method for boolean testing
202
+ # of an instance variable in the form of _var?_.
203
+ #
204
+ # require 'facet/module/attr_tester'
205
+ #
206
+ # attr_tester :a
207
+ #
208
+ # _is equivalent to_
209
+ #
210
+ # def a?
211
+ # @a ? true : @a
212
+ # end
213
+ #
214
+ # Casting is also supported (see attr_reader).
215
+ #
216
+ # attr_tester :a => :evaluate
217
+ #
218
+ # _is equivalent to_
219
+ #
220
+ # def a?
221
+ # @a.evaluate ? true : @a
222
+ # end
223
+ #
224
+ def attr_tester(*args)
225
+ made = []
226
+ if Hash === args.last
227
+ args.concat( args.pop.to_a )
228
+ end
229
+ #hargs = (Hash === args.last ? args.pop : {})
230
+ args.each { |a,c|
231
+ a = a.to_s.strip.chomp('?')
232
+ c = ".#{c.to_s.strip}".chomp('.')
233
+ module_eval %Q{ def #{a}?; @#{a}#{c} ? true : @#{a}#{c}; end }
234
+ made << "#{a}?".to_sym
235
+ }
236
+ (@__atributes__ ||= []).concat made
237
+ return *made
238
+ end
239
+
240
+ # Create an attribute method for getting and setting an
241
+ # instance variable.
242
+ #
243
+ # require 'carat/attr'
244
+ #
245
+ # attr_setter :a
246
+ #
247
+ # _is equivalent to_
248
+ #
249
+ # def a(*args)
250
+ # if args.size > 0
251
+ # @a = args[0]
252
+ # self
253
+ # else
254
+ # @a
255
+ # end
256
+ # end
257
+ #
258
+ # Casting is supported on both getting and setting.
259
+ #
260
+ # attr_setter :a => :to_s
261
+ #
262
+ # _is equivalent to_
263
+ #
264
+ # def a(*args)
265
+ # @a = args[0].to_s if args.size > 0
266
+ # @a.to_s
267
+ # end
268
+ #
269
+ def attr_setter(*args)
270
+ made = []
271
+ if Hash === args.last
272
+ args.concat( args.pop.to_a )
273
+ end
274
+ #hargs = (Hash === args.last ? args.pop : {})
275
+ args.each { |a,c|
276
+ a = a.to_s.strip
277
+ c = ".#{c.to_s.strip}".chomp('.')
278
+ module_eval %Q{
279
+ def #{a}(*args)
280
+ args.size > 0 ? ( @#{a}=args[0]#{c} ; self ) : @#{a}#{c}
281
+ end
282
+ }
283
+ made << "#{a}".to_sym
284
+ }
285
+ (@__atributes__ ||= []).concat( made )
286
+ return *made
287
+ end
288
+
289
+ # DOES ANYONE USE THIS OLD THING?
290
+ #alias attribute attr
291
+
292
+ # The wondrful shortcut.
293
+ def attr(*args)
294
+ # Allows compatibility with old definition, while also
295
+ # extending the capabilites to allow multiple parameters.
296
+ # This form does not allow casting though.
297
+ if TrueClass === args.last or FalseClass === args.last or NilClass === args.last
298
+ if args.pop
299
+ args.concat( args.collect{ |a|
300
+ a = a.to_s.strip
301
+ case a[-1,1]
302
+ when '='
303
+ a[0..-2]
304
+ when '?'
305
+ "#{a[0..-2]}="
306
+ else
307
+ "#{a}="
308
+ end
309
+ } )
310
+ end
311
+ end
312
+ #
313
+ made = []
314
+ readers = []
315
+ writers = []
316
+ testers = []
317
+ if Hash === args.last
318
+ args.concat( args.pop.to_a )
319
+ end
320
+ args.each do |a,c|
321
+ a = a.to_s.strip
322
+ t = a.slice(-1,1)
323
+ m = a.chomp('!').chomp('=').chomp('?')
324
+ case t
325
+ when '='
326
+ readers << [m,c]
327
+ writers << [m,c]
328
+ when '?'
329
+ testers << [m,c]
330
+ when '!'
331
+ writers << [m,c]
332
+ else
333
+ readers << [m,c]
334
+ end
335
+ end
336
+ made.concat( [ attr_reader( *readers ) ] )
337
+ made.concat( [ attr_writer( *writers ) ] )
338
+ made.concat( [ attr_tester( *testers ) ] )
339
+ return *made
340
+ end
341
+
342
+ end