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,709 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Module</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Module</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/carat/macro_rb.html">
59
+ lib/carat/macro.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/lib/carat/attr_rb.html">
63
+ lib/carat/attr.rb
64
+ </a>
65
+ <br />
66
+ </td>
67
+ </tr>
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+ <a href="Object.html">
73
+ Object
74
+ </a>
75
+ </td>
76
+ </tr>
77
+ </table>
78
+ </div>
79
+ <!-- banner header -->
80
+
81
+ <div id="bodyContent">
82
+
83
+
84
+
85
+ <div id="contextContent">
86
+
87
+ <div id="description">
88
+ <p>
89
+ Modify module attribute methods. *add define_attribute *redefine old attr_*
90
+ methods *add <a href="Module.html#M000174">attr_setter</a>
91
+ </p>
92
+
93
+ </div>
94
+
95
+
96
+ </div>
97
+
98
+ <div id="method-list">
99
+ <h3 class="section-bar">Methods</h3>
100
+
101
+ <div class="name-list">
102
+ <a href="#M000167">append_dynamic_features</a>&nbsp;&nbsp;
103
+ <a href="#M000175">attr</a>&nbsp;&nbsp;
104
+ <a href="#M000172">attr_accessor</a>&nbsp;&nbsp;
105
+ <a href="#M000170">attr_reader</a>&nbsp;&nbsp;
106
+ <a href="#M000174">attr_setter</a>&nbsp;&nbsp;
107
+ <a href="#M000173">attr_tester</a>&nbsp;&nbsp;
108
+ <a href="#M000171">attr_writer</a>&nbsp;&nbsp;
109
+ <a href="#M000168">extend</a>&nbsp;&nbsp;
110
+ <a href="#M000169">extend_dynamic_object</a>&nbsp;&nbsp;
111
+ <a href="#M000166">include</a>&nbsp;&nbsp;
112
+ <a href="#M000164">macro</a>&nbsp;&nbsp;
113
+ <a href="#M000165">macros</a>&nbsp;&nbsp;
114
+ </div>
115
+ </div>
116
+
117
+ </div>
118
+
119
+
120
+ <!-- if includes -->
121
+
122
+ <div id="section">
123
+
124
+
125
+
126
+ <div id="aliases-list">
127
+ <h3 class="section-bar">External Aliases</h3>
128
+
129
+ <div class="name-list">
130
+ <table summary="aliases">
131
+ <tr class="top-aligned-row context-row">
132
+ <td class="context-item-name">include</td>
133
+ <td>-></td>
134
+ <td class="context-item-value">include_without_macros</td>
135
+ </tr>
136
+ <tr class="top-aligned-row context-row">
137
+ <td class="context-item-name">extend</td>
138
+ <td>-></td>
139
+ <td class="context-item-value">extend_without_macros</td>
140
+ </tr>
141
+ </table>
142
+ </div>
143
+ </div>
144
+
145
+
146
+
147
+
148
+
149
+ <!-- if method_list -->
150
+ <div id="methods">
151
+ <h3 class="section-bar">Public Instance methods</h3>
152
+
153
+ <div id="method-M000167" class="method-detail">
154
+ <a name="M000167"></a>
155
+
156
+ <div class="method-heading">
157
+ <a href="#M000167" class="method-signature">
158
+ <span class="method-name">append_dynamic_features</span><span class="method-args">( base, options )</span>
159
+ </a>
160
+ </div>
161
+
162
+ <div class="method-description">
163
+ <p>
164
+ Note: Is this the best name for this callback?
165
+ </p>
166
+ <p><a class="source-toggle" href="#"
167
+ onclick="toggleCode('M000167-source');return false;">[Source]</a></p>
168
+ <div class="method-source-code" id="M000167-source">
169
+ <pre>
170
+ <span class="ruby-comment cmt"># File lib/carat/macro.rb, line 45</span>
171
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append_dynamic_features</span>( <span class="ruby-identifier">base</span>, <span class="ruby-identifier">options</span> )
172
+ <span class="ruby-identifier">macros</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
173
+ <span class="ruby-identifier">base</span>.<span class="ruby-identifier">class_eval</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">call</span>( <span class="ruby-identifier">options</span> )
174
+ <span class="ruby-keyword kw">end</span>
175
+ <span class="ruby-keyword kw">end</span>
176
+ </pre>
177
+ </div>
178
+ </div>
179
+ </div>
180
+
181
+ <div id="method-M000175" class="method-detail">
182
+ <a name="M000175"></a>
183
+
184
+ <div class="method-heading">
185
+ <a href="#M000175" class="method-signature">
186
+ <span class="method-name">attr</span><span class="method-args">(*args)</span>
187
+ </a>
188
+ </div>
189
+
190
+ <div class="method-description">
191
+ <p>
192
+ The wondrful shortcut.
193
+ </p>
194
+ <p><a class="source-toggle" href="#"
195
+ onclick="toggleCode('M000175-source');return false;">[Source]</a></p>
196
+ <div class="method-source-code" id="M000175-source">
197
+ <pre>
198
+ <span class="ruby-comment cmt"># File lib/carat/attr.rb, line 293</span>
199
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
200
+ <span class="ruby-comment cmt"># Allows compatibility with old definition, while also</span>
201
+ <span class="ruby-comment cmt"># extending the capabilites to allow multiple parameters.</span>
202
+ <span class="ruby-comment cmt"># This form does not allow casting though.</span>
203
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TrueClass</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">or</span> <span class="ruby-constant">FalseClass</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">or</span> <span class="ruby-constant">NilClass</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
204
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>
205
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
206
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
207
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>]
208
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
209
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>]
210
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'?'</span>
211
+ <span class="ruby-node">&quot;#{a[0..-2]}=&quot;</span>
212
+ <span class="ruby-keyword kw">else</span>
213
+ <span class="ruby-node">&quot;#{a}=&quot;</span>
214
+ <span class="ruby-keyword kw">end</span>
215
+ } )
216
+ <span class="ruby-keyword kw">end</span>
217
+ <span class="ruby-keyword kw">end</span>
218
+ <span class="ruby-comment cmt">#</span>
219
+ <span class="ruby-identifier">made</span> = []
220
+ <span class="ruby-identifier">readers</span> = []
221
+ <span class="ruby-identifier">writers</span> = []
222
+ <span class="ruby-identifier">testers</span> = []
223
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
224
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
225
+ <span class="ruby-keyword kw">end</span>
226
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
227
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
228
+ <span class="ruby-identifier">t</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>)
229
+ <span class="ruby-identifier">m</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'!'</span>).<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'='</span>).<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'?'</span>)
230
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">t</span>
231
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
232
+ <span class="ruby-identifier">readers</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
233
+ <span class="ruby-identifier">writers</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
234
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'?'</span>
235
+ <span class="ruby-identifier">testers</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
236
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span>
237
+ <span class="ruby-identifier">writers</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
238
+ <span class="ruby-keyword kw">else</span>
239
+ <span class="ruby-identifier">readers</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
240
+ <span class="ruby-keyword kw">end</span>
241
+ <span class="ruby-keyword kw">end</span>
242
+ <span class="ruby-identifier">made</span>.<span class="ruby-identifier">concat</span>( [ <span class="ruby-identifier">attr_reader</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">readers</span> ) ] )
243
+ <span class="ruby-identifier">made</span>.<span class="ruby-identifier">concat</span>( [ <span class="ruby-identifier">attr_writer</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">writers</span> ) ] )
244
+ <span class="ruby-identifier">made</span>.<span class="ruby-identifier">concat</span>( [ <span class="ruby-identifier">attr_tester</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">testers</span> ) ] )
245
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
246
+ <span class="ruby-keyword kw">end</span>
247
+ </pre>
248
+ </div>
249
+ </div>
250
+ </div>
251
+
252
+ <div id="method-M000172" class="method-detail">
253
+ <a name="M000172"></a>
254
+
255
+ <div class="method-heading">
256
+ <a href="#M000172" class="method-signature">
257
+ <span class="method-name">attr_accessor</span><span class="method-args">(*args)</span>
258
+ </a>
259
+ </div>
260
+
261
+ <div class="method-description">
262
+ <p>
263
+ Create an attribute method for writing to an instance variable. This is the
264
+ same as the built in method, which it replaces, but adds casting.
265
+ </p>
266
+ <p>
267
+ Casting allows the addition of a method invocation on the instance
268
+ variable. It is defined using a hash parameter, so all castings must come
269
+ at the end of a call to <a href="Module.html#M000171">attr_writer</a>.
270
+ </p>
271
+ <pre>
272
+ require 'carat/attr'
273
+
274
+ attr_accessor :a =&gt; :to_s
275
+ </pre>
276
+ <p>
277
+ _is equivalent to_
278
+ </p>
279
+ <pre>
280
+ def a
281
+ @a.to_s
282
+ end
283
+
284
+ def a=(x)
285
+ @a = x.to_s
286
+ end
287
+ </pre>
288
+ <p><a class="source-toggle" href="#"
289
+ onclick="toggleCode('M000172-source');return false;">[Source]</a></p>
290
+ <div class="method-source-code" id="M000172-source">
291
+ <pre>
292
+ <span class="ruby-comment cmt"># File lib/carat/attr.rb, line 183</span>
293
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_accessor</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
294
+ <span class="ruby-identifier">made</span> = []
295
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
296
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
297
+ <span class="ruby-keyword kw">end</span>
298
+ <span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
299
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
300
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'='</span>)
301
+ <span class="ruby-identifier">c</span> = <span class="ruby-node">&quot;.#{c.to_s.strip}&quot;</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
302
+ <span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}; @#{a}#{c} ; end }</span>
303
+ <span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}=(x); @#{a}=x#{c}; end }</span>
304
+ <span class="ruby-identifier">made</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{a}&quot;</span>.<span class="ruby-identifier">to_sym</span>
305
+ <span class="ruby-identifier">made</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{a}=&quot;</span>.<span class="ruby-identifier">to_sym</span>
306
+ }
307
+ (<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
308
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
309
+ <span class="ruby-keyword kw">end</span>
310
+ </pre>
311
+ </div>
312
+ </div>
313
+ </div>
314
+
315
+ <div id="method-M000170" class="method-detail">
316
+ <a name="M000170"></a>
317
+
318
+ <div class="method-heading">
319
+ <a href="#M000170" class="method-signature">
320
+ <span class="method-name">attr_reader</span><span class="method-args">(*args)</span>
321
+ </a>
322
+ </div>
323
+
324
+ <div class="method-description">
325
+ <p>
326
+ Create an attribute method for reading an instance variable. This is the
327
+ same as the built in method, which it replaces, but adds casting.
328
+ </p>
329
+ <p>
330
+ Casting allows the addition of a method invocation on the instance
331
+ variable. It is defined using a hash parameter, so all castings must come
332
+ at the end of a call to <a href="Module.html#M000170">attr_reader</a>.
333
+ </p>
334
+ <pre>
335
+ require 'carat/attr'
336
+
337
+ attr_reader :a =&gt; :to_s
338
+ </pre>
339
+ <p>
340
+ _is equivalent to_
341
+ </p>
342
+ <pre>
343
+ def a
344
+ @a.to_s
345
+ end
346
+ </pre>
347
+ <p><a class="source-toggle" href="#"
348
+ onclick="toggleCode('M000170-source');return false;">[Source]</a></p>
349
+ <div class="method-source-code" id="M000170-source">
350
+ <pre>
351
+ <span class="ruby-comment cmt"># File lib/carat/attr.rb, line 109</span>
352
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_reader</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
353
+ <span class="ruby-identifier">made</span> = []
354
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
355
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
356
+ <span class="ruby-keyword kw">end</span>
357
+ <span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
358
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
359
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
360
+ <span class="ruby-identifier">c</span> = <span class="ruby-node">&quot;.#{c.to_s.strip}&quot;</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
361
+ <span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}; @#{a}#{c} ; end }</span>
362
+ <span class="ruby-identifier">made</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{a}&quot;</span>.<span class="ruby-identifier">to_sym</span>
363
+ }
364
+ (<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
365
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
366
+ <span class="ruby-keyword kw">end</span>
367
+ </pre>
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ <div id="method-M000174" class="method-detail">
373
+ <a name="M000174"></a>
374
+
375
+ <div class="method-heading">
376
+ <a href="#M000174" class="method-signature">
377
+ <span class="method-name">attr_setter</span><span class="method-args">(*args)</span>
378
+ </a>
379
+ </div>
380
+
381
+ <div class="method-description">
382
+ <p>
383
+ Create an attribute method for getting and setting an instance variable.
384
+ </p>
385
+ <pre>
386
+ require 'carat/attr'
387
+
388
+ attr_setter :a
389
+ </pre>
390
+ <p>
391
+ _is equivalent to_
392
+ </p>
393
+ <pre>
394
+ def a(*args)
395
+ if args.size &gt; 0
396
+ @a = args[0]
397
+ self
398
+ else
399
+ @a
400
+ end
401
+ end
402
+ </pre>
403
+ <p>
404
+ Casting is supported on both getting and setting.
405
+ </p>
406
+ <pre>
407
+ attr_setter :a =&gt; :to_s
408
+ </pre>
409
+ <p>
410
+ _is equivalent to_
411
+ </p>
412
+ <pre>
413
+ def a(*args)
414
+ @a = args[0].to_s if args.size &gt; 0
415
+ @a.to_s
416
+ end
417
+ </pre>
418
+ <p><a class="source-toggle" href="#"
419
+ onclick="toggleCode('M000174-source');return false;">[Source]</a></p>
420
+ <div class="method-source-code" id="M000174-source">
421
+ <pre>
422
+ <span class="ruby-comment cmt"># File lib/carat/attr.rb, line 269</span>
423
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_setter</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
424
+ <span class="ruby-identifier">made</span> = []
425
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
426
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
427
+ <span class="ruby-keyword kw">end</span>
428
+ <span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
429
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
430
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
431
+ <span class="ruby-identifier">c</span> = <span class="ruby-node">&quot;.#{c.to_s.strip}&quot;</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
432
+ <span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{
433
+ def #{a}(*args)
434
+ args.size &gt; 0 ? ( @#{a}=args[0]#{c} ; self ) : @#{a}#{c}
435
+ end
436
+ }</span>
437
+ <span class="ruby-identifier">made</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{a}&quot;</span>.<span class="ruby-identifier">to_sym</span>
438
+ }
439
+ (<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
440
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
441
+ <span class="ruby-keyword kw">end</span>
442
+ </pre>
443
+ </div>
444
+ </div>
445
+ </div>
446
+
447
+ <div id="method-M000173" class="method-detail">
448
+ <a name="M000173"></a>
449
+
450
+ <div class="method-heading">
451
+ <a href="#M000173" class="method-signature">
452
+ <span class="method-name">attr_tester</span><span class="method-args">(*args)</span>
453
+ </a>
454
+ </div>
455
+
456
+ <div class="method-description">
457
+ <p>
458
+ Create an attribute method for boolean testing of an instance variable in
459
+ the form of _var?_.
460
+ </p>
461
+ <pre>
462
+ require 'facet/module/attr_tester'
463
+
464
+ attr_tester :a
465
+ </pre>
466
+ <p>
467
+ _is equivalent to_
468
+ </p>
469
+ <pre>
470
+ def a?
471
+ @a ? true : @a
472
+ end
473
+ </pre>
474
+ <p>
475
+ Casting is also supported (see <a
476
+ href="Module.html#M000170">attr_reader</a>).
477
+ </p>
478
+ <pre>
479
+ attr_tester :a =&gt; :evaluate
480
+ </pre>
481
+ <p>
482
+ _is equivalent to_
483
+ </p>
484
+ <pre>
485
+ def a?
486
+ @a.evaluate ? true : @a
487
+ end
488
+ </pre>
489
+ <p><a class="source-toggle" href="#"
490
+ onclick="toggleCode('M000173-source');return false;">[Source]</a></p>
491
+ <div class="method-source-code" id="M000173-source">
492
+ <pre>
493
+ <span class="ruby-comment cmt"># File lib/carat/attr.rb, line 224</span>
494
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_tester</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
495
+ <span class="ruby-identifier">made</span> = []
496
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
497
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
498
+ <span class="ruby-keyword kw">end</span>
499
+ <span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
500
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
501
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'?'</span>)
502
+ <span class="ruby-identifier">c</span> = <span class="ruby-node">&quot;.#{c.to_s.strip}&quot;</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
503
+ <span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}?; @#{a}#{c} ? true : @#{a}#{c}; end }</span>
504
+ <span class="ruby-identifier">made</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{a}?&quot;</span>.<span class="ruby-identifier">to_sym</span>
505
+ }
506
+ (<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span> <span class="ruby-identifier">made</span>
507
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
508
+ <span class="ruby-keyword kw">end</span>
509
+ </pre>
510
+ </div>
511
+ </div>
512
+ </div>
513
+
514
+ <div id="method-M000171" class="method-detail">
515
+ <a name="M000171"></a>
516
+
517
+ <div class="method-heading">
518
+ <a href="#M000171" class="method-signature">
519
+ <span class="method-name">attr_writer</span><span class="method-args">(*args)</span>
520
+ </a>
521
+ </div>
522
+
523
+ <div class="method-description">
524
+ <p>
525
+ Create an attribute method for writing to an instance variable. This is the
526
+ same as the built in method, which it replaces, but adds casting.
527
+ </p>
528
+ <p>
529
+ Casting allows the addition of a method invocation on the instance
530
+ variable. It is defined using a hash parameter, so all castings must come
531
+ at the end of a call to <a href="Module.html#M000171">attr_writer</a>.
532
+ </p>
533
+ <pre>
534
+ require 'carat/attr'
535
+
536
+ attr_writer :a =&gt; :to_s
537
+ </pre>
538
+ <p>
539
+ _is equivalent to_
540
+ </p>
541
+ <pre>
542
+ def a=(x)
543
+ @a = x.to_s
544
+ end
545
+ </pre>
546
+ <p><a class="source-toggle" href="#"
547
+ onclick="toggleCode('M000171-source');return false;">[Source]</a></p>
548
+ <div class="method-source-code" id="M000171-source">
549
+ <pre>
550
+ <span class="ruby-comment cmt"># File lib/carat/attr.rb, line 144</span>
551
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_writer</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
552
+ <span class="ruby-identifier">made</span> = []
553
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
554
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
555
+ <span class="ruby-keyword kw">end</span>
556
+ <span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
557
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
558
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'='</span>).<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'!'</span>)
559
+ <span class="ruby-identifier">c</span> = <span class="ruby-node">&quot;.#{c.to_s.strip}&quot;</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
560
+ <span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}=(x); @#{a}=x#{c}; end }</span>
561
+ <span class="ruby-identifier">made</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{a}=&quot;</span>.<span class="ruby-identifier">to_sym</span>
562
+ }
563
+ (<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
564
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
565
+ <span class="ruby-keyword kw">end</span>
566
+ </pre>
567
+ </div>
568
+ </div>
569
+ </div>
570
+
571
+ <div id="method-M000168" class="method-detail">
572
+ <a name="M000168"></a>
573
+
574
+ <div class="method-heading">
575
+ <a href="#M000168" class="method-signature">
576
+ <span class="method-name">extend</span><span class="method-args">(*args)</span>
577
+ </a>
578
+ </div>
579
+
580
+ <div class="method-description">
581
+ <p><a class="source-toggle" href="#"
582
+ onclick="toggleCode('M000168-source');return false;">[Source]</a></p>
583
+ <div class="method-source-code" id="M000168-source">
584
+ <pre>
585
+ <span class="ruby-comment cmt"># File lib/carat/macro.rb, line 53</span>
586
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extend</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
587
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span> <span class="ruby-operator">:</span> {}
588
+ <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">mod</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">args</span>
589
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">extend_dynamic_object</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">options</span> )
590
+ <span class="ruby-keyword kw">end</span>
591
+ <span class="ruby-identifier">extend_without_macros</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
592
+ <span class="ruby-keyword kw">end</span>
593
+ </pre>
594
+ </div>
595
+ </div>
596
+ </div>
597
+
598
+ <div id="method-M000169" class="method-detail">
599
+ <a name="M000169"></a>
600
+
601
+ <div class="method-heading">
602
+ <a href="#M000169" class="method-signature">
603
+ <span class="method-name">extend_dynamic_object</span><span class="method-args">( base, options )</span>
604
+ </a>
605
+ </div>
606
+
607
+ <div class="method-description">
608
+ <p>
609
+ Note: Is this the best name for this callback?
610
+ </p>
611
+ <p><a class="source-toggle" href="#"
612
+ onclick="toggleCode('M000169-source');return false;">[Source]</a></p>
613
+ <div class="method-source-code" id="M000169-source">
614
+ <pre>
615
+ <span class="ruby-comment cmt"># File lib/carat/macro.rb, line 62</span>
616
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extend_dynamic_object</span>( <span class="ruby-identifier">base</span>, <span class="ruby-identifier">options</span> )
617
+ <span class="ruby-identifier">macros</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
618
+ (<span class="ruby-keyword kw">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">base</span>; <span class="ruby-keyword kw">self</span> ; <span class="ruby-keyword kw">end</span>).<span class="ruby-identifier">class_eval</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">call</span>( <span class="ruby-identifier">options</span> )
619
+ <span class="ruby-keyword kw">end</span>
620
+ <span class="ruby-keyword kw">end</span>
621
+ </pre>
622
+ </div>
623
+ </div>
624
+ </div>
625
+
626
+ <div id="method-M000166" class="method-detail">
627
+ <a name="M000166"></a>
628
+
629
+ <div class="method-heading">
630
+ <a href="#M000166" class="method-signature">
631
+ <span class="method-name">include</span><span class="method-args">(*args)</span>
632
+ </a>
633
+ </div>
634
+
635
+ <div class="method-description">
636
+ <p><a class="source-toggle" href="#"
637
+ onclick="toggleCode('M000166-source');return false;">[Source]</a></p>
638
+ <div class="method-source-code" id="M000166-source">
639
+ <pre>
640
+ <span class="ruby-comment cmt"># File lib/carat/macro.rb, line 36</span>
641
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
642
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span> <span class="ruby-operator">:</span> {}
643
+ <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">mod</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">args</span>
644
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">append_dynamic_features</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">options</span> )
645
+ <span class="ruby-keyword kw">end</span>
646
+ <span class="ruby-identifier">include_without_macros</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
647
+ <span class="ruby-keyword kw">end</span>
648
+ </pre>
649
+ </div>
650
+ </div>
651
+ </div>
652
+
653
+ <div id="method-M000164" class="method-detail">
654
+ <a name="M000164"></a>
655
+
656
+ <div class="method-heading">
657
+ <a href="#M000164" class="method-signature">
658
+ <span class="method-name">macro</span><span class="method-args">( &amp;blk )</span>
659
+ </a>
660
+ </div>
661
+
662
+ <div class="method-description">
663
+ <p><a class="source-toggle" href="#"
664
+ onclick="toggleCode('M000164-source');return false;">[Source]</a></p>
665
+ <div class="method-source-code" id="M000164-source">
666
+ <pre>
667
+ <span class="ruby-comment cmt"># File lib/carat/macro.rb, line 28</span>
668
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macro</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span> )
669
+ (<span class="ruby-ivar">@macros</span> <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">blk</span>
670
+ <span class="ruby-keyword kw">end</span>
671
+ </pre>
672
+ </div>
673
+ </div>
674
+ </div>
675
+
676
+ <div id="method-M000165" class="method-detail">
677
+ <a name="M000165"></a>
678
+
679
+ <div class="method-heading">
680
+ <a href="#M000165" class="method-signature">
681
+ <span class="method-name">macros</span><span class="method-args">()</span>
682
+ </a>
683
+ </div>
684
+
685
+ <div class="method-description">
686
+ <p><a class="source-toggle" href="#"
687
+ onclick="toggleCode('M000165-source');return false;">[Source]</a></p>
688
+ <div class="method-source-code" id="M000165-source">
689
+ <pre>
690
+ <span class="ruby-comment cmt"># File lib/carat/macro.rb, line 32</span>
691
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macros</span> ; <span class="ruby-ivar">@macros</span> <span class="ruby-operator">||=</span> [] ; <span class="ruby-keyword kw">end</span>
692
+ </pre>
693
+ </div>
694
+ </div>
695
+ </div>
696
+
697
+
698
+ </div>
699
+
700
+
701
+ </div>
702
+
703
+
704
+ <div id="validator-badges">
705
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
706
+ </div>
707
+
708
+ </body>
709
+ </html>