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,99 @@
1
+ =begin rdoc
2
+
3
+ = Timer, with #timed
4
+
5
+ Timer class. Also provides a block method for running a timed procedure.
6
+
7
+ == Usage
8
+
9
+ require 'carat/timer'
10
+
11
+ timed { |timer|
12
+
13
+ timer.total_time.round #=> 0
14
+
15
+ sleep 1
16
+ timer.total_time.round #=> 1
17
+
18
+ timer.stop
19
+ timer.total_time.round #=> 1
20
+
21
+ sleep 2
22
+ timer.total_time.round #=> 1
23
+
24
+ timer.start
25
+ timer.total_time.round #=> 1
26
+
27
+ sleep 1
28
+ timer.total_time.round #=> 2
29
+
30
+ }
31
+
32
+ == Notes
33
+
34
+ I would like to take this and meger it with TimeLimit in some manner.
35
+
36
+ == Author
37
+
38
+ * Paul Brannan <paul@atdesk.com>
39
+
40
+ == Legal
41
+
42
+ Adapted from Ruby Treasures 0.4
43
+ Copyright (C) 2002 Paul Brannan <paul@atdesk.com>
44
+
45
+ You may distribute this software under the same terms as Ruby (see the file
46
+ COPYING that was distributed with this library).
47
+
48
+ =end
49
+
50
+ class Timer
51
+ attr_reader :start_time
52
+ attr_reader :end_time
53
+
54
+ def initialize
55
+ @start_time = nil
56
+ @end_time = nil
57
+ @total_time = 0
58
+ @runnning = nil
59
+ start
60
+ end
61
+
62
+ def start
63
+ @start_time = Time.now
64
+ @running = true
65
+ end
66
+
67
+ def stop
68
+ @end_time = Time.now
69
+ @total_time += @end_time - @start_time
70
+ @running = false
71
+ end
72
+
73
+ def running?
74
+ return @running
75
+ end
76
+
77
+ def stopped?
78
+ return !@running
79
+ end
80
+
81
+ def total_time
82
+ if running? then
83
+ return @total_time + (Time.now - @start_time)
84
+ else
85
+ return @total_time
86
+ end
87
+ end
88
+
89
+ end
90
+
91
+ # Takes a block and returns the total time it
92
+ # took to execute.
93
+ module Kernel
94
+ def timed
95
+ timer = Timer.new
96
+ yield(timer)
97
+ return timer.total_time
98
+ end
99
+ end
@@ -0,0 +1,154 @@
1
+ =begin rdoc
2
+
3
+ = TracePoint
4
+
5
+ A TracePoint is a CodePoint (i.e. a Binding) with the addition of event information.
6
+ It functions very well as the join-point for Event-based AOP.
7
+
8
+ == Usage
9
+
10
+ require 'raspberry/tracepoint'
11
+
12
+ TracePoint.trace { |tp|
13
+ puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
14
+ }
15
+
16
+ 1 + 1
17
+
18
+ produces
19
+
20
+ Class trace return true false
21
+ Object line false false
22
+ Fixnum + c-call false false
23
+ Fixnum + c-return false false
24
+
25
+ == Version
26
+
27
+ 0.2.0
28
+
29
+ =end
30
+
31
+ require 'facet/binding'
32
+
33
+ # This is the same as a Binding. Not really needed, but I like consistency :)
34
+ CodePoint = Binding
35
+
36
+ # You can't subclass Binding, so we delegate (which is better anyway).
37
+ class TracePoint #< CodePoint
38
+
39
+ # -- class ---------------------
40
+ class << self
41
+
42
+ @@active = false
43
+
44
+ def active ; @@active ; end
45
+
46
+ def active=(x)
47
+ @@active = x ? true : false
48
+ unless @@active
49
+ set_trace_func nil
50
+ end
51
+ end
52
+
53
+ # Trace execution using a TracePoint.
54
+ def trace # :yield:
55
+ if active
56
+ bb_stack = []
57
+ set_trace_func proc{ |e, f, l, m, b, k|
58
+ #(p e, f, l, m, b, k, @@bb_stack; puts "---") if $DEBUG
59
+ if ['call','c-call','class'].include?(e)
60
+ bb_stack << b
61
+ elsif ['return','c-return','end'].include?(e)
62
+ bb = bb_stack.pop
63
+ end
64
+ b = bb if ! b # this sucks!
65
+ tp = TracePoint.new(e,m,b,bb)
66
+ yield(tp)
67
+ }
68
+ end
69
+ end
70
+
71
+ end #class
72
+
73
+ # -- instance -------------------
74
+
75
+ attr_accessor :event, :binding, :back_binding
76
+
77
+ # Until Ruby has a built-in way to get the name of the calling method
78
+ # that information must be passed into the TracePoint.
79
+ def initialize( event, method, bind, back_binding=bind )
80
+ @event = event
81
+ @method = method
82
+ @binding = bind
83
+ @back_binding = back_binding
84
+ end
85
+
86
+ # shorthand for binding
87
+ def bind ; @binding ; end
88
+
89
+ # shorthand for back_binding
90
+ def back ; @back_binding ; end
91
+
92
+ # Delegates "self" to the binding which
93
+ # in turn delegates the binding object.
94
+ def self ; @binding.self ; end
95
+
96
+ # Returns the name of the event's method.
97
+ # This could delegate to the binding if Ruby had
98
+ # an internal way to retrieve the current method name.
99
+ def called ; @method ; end
100
+ alias_method( :method_name, :called )
101
+ alias_method( :me, :called )
102
+
103
+ # delegate to binding
104
+ #def method_missing(meth, *args, &blk)
105
+ # @binding.send(meth, *args, &blk)
106
+ #end
107
+
108
+ ### methods for working with events
109
+
110
+ EVENT_MAP = {
111
+ :all => ['call', 'c-call', 'return', 'c-return', 'line', 'class', 'end', 'raise'],
112
+ :before => ['call', 'c-call'],
113
+ :after => ['return', 'c-return'],
114
+ :call => ['call'],
115
+ :return => ['return'],
116
+ :ccall => ['c-call'],
117
+ :creturn => ['c-return'],
118
+ :line => ['line'],
119
+ :class => ['class'],
120
+ :end => ['end'],
121
+ :raise => ['raise']
122
+ }
123
+ def event_map(e) ; EVENT_MAP[e] ; end
124
+
125
+ # Is the trace point defined or undefined?
126
+ def event? ; !! @event ; end
127
+ def eventless? ; ! @event ; end
128
+
129
+ # For use in case conditions
130
+ def ===(e)
131
+ EVENT_MAP[e].include?(@event)
132
+ end
133
+
134
+ # Creates an <event>? method for each of the above event mappings.
135
+ EVENT_MAP.each_pair { |m,v|
136
+ define_method( "#{m}?" ){ v.include?(@event) }
137
+ }
138
+
139
+ end
140
+
141
+
142
+ # --- test ---
143
+
144
+ if $0 == __FILE__
145
+
146
+ TracePoint.active = true
147
+
148
+ TracePoint.trace { |tp|
149
+ puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
150
+ }
151
+
152
+ 1 + 1
153
+
154
+ end
@@ -0,0 +1,31 @@
1
+ =begin rdoc
2
+
3
+ = Tuple
4
+
5
+ A Tuple is essentially an Array that is also Comaparable.
6
+
7
+ == Usage
8
+
9
+ t1 = Tuple.new(1,2,3)
10
+ t2 = Tuple.new(2,3,4)
11
+
12
+ t1 > t2 #=> false
13
+ t2 > t1 #=> true
14
+
15
+ == Note
16
+
17
+ This class probably needs some enhancements to
18
+ be truly considered a Tuple. For instance, should
19
+ a Tuple by multiton?
20
+
21
+ =end
22
+
23
+ class Tuple < Array
24
+ include Comparable
25
+
26
+ def initialize(*args)
27
+ super()
28
+ self.concat args
29
+ end
30
+
31
+ end
@@ -0,0 +1,68 @@
1
+ #:title: Module Uninheritable
2
+ #--
3
+ # Uninheritable
4
+ # Version 1.2.0
5
+ #
6
+ # Copyright (c) 2003 Austin Ziegler
7
+ #
8
+ # $Id: uninheritable.rb,v 1.2 2003/09/18 03:10:10 austin Exp $
9
+ #
10
+ # ==========================================================================
11
+ # Revision History ::
12
+ # YYYY.MM.DD Developer Description
13
+ # --------------------------------------------------------------------------
14
+ # 2003.09.17 Austin Ziegler Minor modifications to documentation.
15
+ # ==========================================================================
16
+ #++
17
+
18
+ # = Introduction
19
+ #
20
+ # Allows an object to declare itself as unable to be subclassed. The
21
+ # technique behind this is very simple (redefinition of #inherited), so this
22
+ # just provides an easier way to do the same thing with a consistent error
23
+ # message.
24
+ #
25
+ # == Usage
26
+ #
27
+ # require 'uninheritable'
28
+ #
29
+ # class A
30
+ # extend Uninheritable
31
+ # end
32
+ #
33
+ # class B < A; end # => raises TypeError
34
+ #
35
+ # == Info
36
+ #
37
+ # Copyright:: Copyright (c) 2003 Austin Ziegler
38
+ # Licence:: MIT-Style
39
+ # Version:: 1.2.0
40
+ #
41
+ # == Licence
42
+ #
43
+ # Permission is hereby granted, free of charge, to any person obtaining a
44
+ # copy of this software and associated documentation files (the "Software"),
45
+ # to deal in the Software without restriction, including without limitation
46
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
47
+ # and/or sell copies of the Software, and to permit persons to whom the
48
+ # Software is furnished to do so, subject to the following conditions:
49
+ #
50
+ # The above copyright notice and this permission notice shall be included in
51
+ # all copies or substantial portions of the Software.
52
+ #
53
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
54
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
55
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
56
+ # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
57
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
58
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
59
+ # DEALINGS IN THE SOFTWARE.
60
+ #
61
+ module Uninheritable
62
+ VERSION = "1.2.0"
63
+ # Redefines a class's #inherited definition to prevent subclassing of the
64
+ # class extended by this module.
65
+ def inherited(klass)
66
+ raise TypeError, "Class #{self} cannot be subclassed."
67
+ end
68
+ end
@@ -0,0 +1,147 @@
1
+ =begin rdoc
2
+
3
+ = Version
4
+
5
+ A class for manipulating and storing conventional version numbers
6
+ in the form of "1.0.0".
7
+
8
+ == Usage
9
+
10
+ VERSION = Version("1.2.3") # same as Version.new()
11
+
12
+ VERSION.major #=> 1
13
+ VERSION.minor #=> 2
14
+ VERSION.teeny #=> 3
15
+
16
+ VERSION.teeny += 1 #=> 4
17
+
18
+ VERSION > Version(1,2,3) #=> true
19
+ VERSION > Version("1.2.4") #=> false
20
+
21
+ == Author(s)
22
+
23
+ * Minero Aoki
24
+ * Thomas Sawyer
25
+
26
+ == License
27
+
28
+ Based on original by Minero Aoki.
29
+ GPL Copyright (c) 2000-2001 Minero Aoki <aamine at loveruby.net>
30
+ GPL Copyright (c) 2004-2005 Thomas Sawyer <tranfire at gmail.com>
31
+
32
+ This program is free software.
33
+ You can distribute/modify this program under the terms of
34
+ the GNU Lesser General Public License version 2 or later.
35
+
36
+ =end
37
+
38
+
39
+ class Version
40
+
41
+ VERSION_EXP = /\d+(?:\.\d+)*/
42
+
43
+ def self.[](*args)
44
+ Version.new(*args)
45
+ end
46
+
47
+ include Comparable
48
+
49
+ def initialize( arg, *nums )
50
+ set( arg, *nums )
51
+ end
52
+
53
+ def set( arg, *nums )
54
+ if String === arg then
55
+ unless m = VERSION_EXP.match( arg ) then
56
+ raise ArgumentError, "wrong version string format '#{arg}'"
57
+ end
58
+ @num = m[0].split('.').collect {|i| i.to_i }
59
+ else
60
+ @num = [ arg, *(nums || []) ]
61
+ #@num.unshift arg
62
+ end
63
+ end
64
+
65
+ def dup
66
+ self.class.new( *@nums )
67
+ end
68
+
69
+ def ==( other )
70
+ @num == other.to_a
71
+ end
72
+ alias_method( :eql?, :== )
73
+
74
+ def hash ; @num.hash ; end
75
+
76
+ def to_s ; @num.join '.' ; end
77
+ def to_a ; @num.dup ; end
78
+
79
+ def inspect
80
+ "\#<#{self.class} #{to_s}>"
81
+ end
82
+
83
+ def major ; @num[0] ; end
84
+ def major=( i ) ; @num[0] = i ; end
85
+
86
+ def minor ; @num[1] ; end
87
+ def minor=( i ) ; @num[1] = i ; end
88
+
89
+ def teeny ; @num[2] ; end
90
+ def teeny=( i ) ; @num[2] = i ; end
91
+
92
+ def weeny ; @num[3] ; end
93
+ def weeny=( i ) ; @num[3] = i ; end
94
+
95
+ def next_major!
96
+ (1..last_index).each{ |i| @num[i] = 0 } if last_index > 0
97
+ @num[0] += 1
98
+ end
99
+
100
+ def next_minor!
101
+ (2..last_index).each{ |i| @num[i] = 0 } if last_index > 1
102
+ if @num[1]
103
+ @num[1] += 1
104
+ end
105
+ end
106
+
107
+ def next_teeny!
108
+ (3..last_index).each{ |i| @num[i] = 0 } if last_index > 2
109
+ if @num[2]
110
+ @num[2] += 1
111
+ end
112
+ end
113
+
114
+ def next_weeny!
115
+ #(4..last_index).each{ |i| @num[i] = 0 } if last_index > 3
116
+ if @num[3]
117
+ @num[3] += 1
118
+ end
119
+ end
120
+
121
+ def type
122
+ case last_index
123
+ when 0 then :major
124
+ when 1 then :minor
125
+ when 2 then :teeny
126
+ when 3 then :weeny
127
+ end
128
+ end
129
+
130
+ def <=>( other )
131
+ return false unless self.class === other
132
+ n = @num
133
+ ret = nil; other.instance_eval { ret = (n <=> @num) }
134
+ ret
135
+ end
136
+
137
+ private
138
+
139
+ def last_index
140
+ @num.length - 1
141
+ end
142
+
143
+ end
144
+
145
+ # not really the ruby way
146
+ #def Version(*args) ; Version.new(*args) ; end
147
+