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,337 @@
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: CountingSemaphore</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">CountingSemaphore</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/carat/semaphore_rb.html">
59
+ lib/carat/semaphore.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Object.html">
69
+ Object
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <h1>Semaphore (<a href="CountingSemaphore.html">CountingSemaphore</a>)</h1>
85
+ <p>
86
+ Technically a semaphore is simply an integer variable which has an
87
+ execution queue associated with it.
88
+ </p>
89
+ <h2>Usage</h2>
90
+ <pre>
91
+ s = Semaphore.new
92
+
93
+ # to do
94
+ </pre>
95
+ <h2>History</h2>
96
+ <pre>
97
+ $Id: semaphore.rb,v 1.2 2003/03/15 20:10:10 fukumoto Exp $
98
+ </pre>
99
+
100
+ </div>
101
+
102
+
103
+ </div>
104
+
105
+ <div id="method-list">
106
+ <h3 class="section-bar">Methods</h3>
107
+
108
+ <div class="name-list">
109
+ <a href="#M000384">down</a>&nbsp;&nbsp;
110
+ <a href="#M000388">exclusive</a>&nbsp;&nbsp;
111
+ <a href="#M000381">new</a>&nbsp;&nbsp;
112
+ <a href="#M000386">p</a>&nbsp;&nbsp;
113
+ <a href="#M000383">signal</a>&nbsp;&nbsp;
114
+ <a href="#M000389">synchronize</a>&nbsp;&nbsp;
115
+ <a href="#M000385">up</a>&nbsp;&nbsp;
116
+ <a href="#M000387">v</a>&nbsp;&nbsp;
117
+ <a href="#M000382">wait</a>&nbsp;&nbsp;
118
+ </div>
119
+ </div>
120
+
121
+ </div>
122
+
123
+
124
+ <!-- if includes -->
125
+
126
+ <div id="section">
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+ <!-- if method_list -->
136
+ <div id="methods">
137
+ <h3 class="section-bar">Public Class methods</h3>
138
+
139
+ <div id="method-M000381" class="method-detail">
140
+ <a name="M000381"></a>
141
+
142
+ <div class="method-heading">
143
+ <a href="#M000381" class="method-signature">
144
+ <span class="method-name">new</span><span class="method-args">(initvalue = 0)</span>
145
+ </a>
146
+ </div>
147
+
148
+ <div class="method-description">
149
+ <p><a class="source-toggle" href="#"
150
+ onclick="toggleCode('M000381-source');return false;">[Source]</a></p>
151
+ <div class="method-source-code" id="M000381-source">
152
+ <pre>
153
+ <span class="ruby-comment cmt"># File lib/carat/semaphore.rb, line 22</span>
154
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">initvalue</span> = <span class="ruby-value">0</span>)
155
+ <span class="ruby-ivar">@counter</span> = <span class="ruby-identifier">initvalue</span>
156
+ <span class="ruby-ivar">@waiting_list</span> = []
157
+ <span class="ruby-keyword kw">end</span>
158
+ </pre>
159
+ </div>
160
+ </div>
161
+ </div>
162
+
163
+ <h3 class="section-bar">Public Instance methods</h3>
164
+
165
+ <div id="method-M000384" class="method-detail">
166
+ <a name="M000384"></a>
167
+
168
+ <div class="method-heading">
169
+ <span class="method-name">down</span><span class="method-args">()</span>
170
+ </div>
171
+
172
+ <div class="method-description">
173
+ <p>
174
+ Alias for <a href="CountingSemaphore.html#M000382">wait</a>
175
+ </p>
176
+ </div>
177
+ </div>
178
+
179
+ <div id="method-M000388" class="method-detail">
180
+ <a name="M000388"></a>
181
+
182
+ <div class="method-heading">
183
+ <a href="#M000388" class="method-signature">
184
+ <span class="method-name">exclusive</span><span class="method-args">() {|| ...}</span>
185
+ </a>
186
+ </div>
187
+
188
+ <div class="method-description">
189
+ <p><a class="source-toggle" href="#"
190
+ onclick="toggleCode('M000388-source');return false;">[Source]</a></p>
191
+ <div class="method-source-code" id="M000388-source">
192
+ <pre>
193
+ <span class="ruby-comment cmt"># File lib/carat/semaphore.rb, line 58</span>
194
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exclusive</span>
195
+ <span class="ruby-identifier">wait</span>
196
+ <span class="ruby-keyword kw">yield</span>
197
+ <span class="ruby-keyword kw">ensure</span>
198
+ <span class="ruby-identifier">signal</span>
199
+ <span class="ruby-keyword kw">end</span>
200
+ </pre>
201
+ </div>
202
+ </div>
203
+ </div>
204
+
205
+ <div id="method-M000386" class="method-detail">
206
+ <a name="M000386"></a>
207
+
208
+ <div class="method-heading">
209
+ <span class="method-name">p</span><span class="method-args">()</span>
210
+ </div>
211
+
212
+ <div class="method-description">
213
+ <p>
214
+ Alias for <a href="CountingSemaphore.html#M000382">wait</a>
215
+ </p>
216
+ </div>
217
+ </div>
218
+
219
+ <div id="method-M000383" class="method-detail">
220
+ <a name="M000383"></a>
221
+
222
+ <div class="method-heading">
223
+ <a href="#M000383" class="method-signature">
224
+ <span class="method-name">signal</span><span class="method-args">()</span>
225
+ </a>
226
+ </div>
227
+
228
+ <div class="method-description">
229
+ <p><a class="source-toggle" href="#"
230
+ onclick="toggleCode('M000383-source');return false;">[Source]</a></p>
231
+ <div class="method-source-code" id="M000383-source">
232
+ <pre>
233
+ <span class="ruby-comment cmt"># File lib/carat/semaphore.rb, line 38</span>
234
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">signal</span>
235
+ <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">critical</span> = <span class="ruby-keyword kw">true</span>
236
+ <span class="ruby-keyword kw">begin</span>
237
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@counter</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
238
+ <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@waiting_list</span>.<span class="ruby-identifier">shift</span>
239
+ <span class="ruby-identifier">t</span>.<span class="ruby-identifier">wakeup</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">t</span>
240
+ <span class="ruby-keyword kw">end</span>
241
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">ThreadError</span>
242
+ <span class="ruby-keyword kw">retry</span>
243
+ <span class="ruby-keyword kw">end</span>
244
+ <span class="ruby-keyword kw">self</span>
245
+ <span class="ruby-keyword kw">ensure</span>
246
+ <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">critical</span> = <span class="ruby-keyword kw">false</span>
247
+ <span class="ruby-keyword kw">end</span>
248
+ </pre>
249
+ </div>
250
+ </div>
251
+ </div>
252
+
253
+ <div id="method-M000389" class="method-detail">
254
+ <a name="M000389"></a>
255
+
256
+ <div class="method-heading">
257
+ <span class="method-name">synchronize</span><span class="method-args">()</span>
258
+ </div>
259
+
260
+ <div class="method-description">
261
+ <p>
262
+ Alias for <a href="CountingSemaphore.html#M000388">exclusive</a>
263
+ </p>
264
+ </div>
265
+ </div>
266
+
267
+ <div id="method-M000385" class="method-detail">
268
+ <a name="M000385"></a>
269
+
270
+ <div class="method-heading">
271
+ <span class="method-name">up</span><span class="method-args">()</span>
272
+ </div>
273
+
274
+ <div class="method-description">
275
+ <p>
276
+ Alias for <a href="CountingSemaphore.html#M000383">signal</a>
277
+ </p>
278
+ </div>
279
+ </div>
280
+
281
+ <div id="method-M000387" class="method-detail">
282
+ <a name="M000387"></a>
283
+
284
+ <div class="method-heading">
285
+ <span class="method-name">v</span><span class="method-args">()</span>
286
+ </div>
287
+
288
+ <div class="method-description">
289
+ <p>
290
+ Alias for <a href="CountingSemaphore.html#M000383">signal</a>
291
+ </p>
292
+ </div>
293
+ </div>
294
+
295
+ <div id="method-M000382" class="method-detail">
296
+ <a name="M000382"></a>
297
+
298
+ <div class="method-heading">
299
+ <a href="#M000382" class="method-signature">
300
+ <span class="method-name">wait</span><span class="method-args">()</span>
301
+ </a>
302
+ </div>
303
+
304
+ <div class="method-description">
305
+ <p><a class="source-toggle" href="#"
306
+ onclick="toggleCode('M000382-source');return false;">[Source]</a></p>
307
+ <div class="method-source-code" id="M000382-source">
308
+ <pre>
309
+ <span class="ruby-comment cmt"># File lib/carat/semaphore.rb, line 27</span>
310
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wait</span>
311
+ <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">critical</span> = <span class="ruby-keyword kw">true</span>
312
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@counter</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
313
+ <span class="ruby-ivar">@waiting_list</span>.<span class="ruby-identifier">push</span>(<span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>)
314
+ <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">stop</span>
315
+ <span class="ruby-keyword kw">end</span>
316
+ <span class="ruby-keyword kw">self</span>
317
+ <span class="ruby-keyword kw">ensure</span>
318
+ <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">critical</span> = <span class="ruby-keyword kw">false</span>
319
+ <span class="ruby-keyword kw">end</span>
320
+ </pre>
321
+ </div>
322
+ </div>
323
+ </div>
324
+
325
+
326
+ </div>
327
+
328
+
329
+ </div>
330
+
331
+
332
+ <div id="validator-badges">
333
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
334
+ </div>
335
+
336
+ </body>
337
+ </html>
@@ -0,0 +1,561 @@
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>Module: CrossCase</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>Module</strong></td>
53
+ <td class="class-name-in-header">CrossCase</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/carat/crosscase_rb.html">
59
+ lib/carat/crosscase.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+ <div id="description">
76
+ <p>
77
+ A mixin which causes aliases for methods with either under_barred or
78
+ camelCased naming conventions to be created in the opposing convention.
79
+ E.g., in a class which mixes in <a href="CrossCase.html">CrossCase</a>,
80
+ defining a method which is called <tt>foo_bar</tt> will also create an
81
+ alias for that method called <tt>fooBar</tt>.
82
+ </p>
83
+
84
+ </div>
85
+
86
+
87
+ </div>
88
+
89
+ <div id="method-list">
90
+ <h3 class="section-bar">Methods</h3>
91
+
92
+ <div class="name-list">
93
+ <a href="#M000627">extend_object</a>&nbsp;&nbsp;
94
+ <a href="#M000635">findTargetMethods</a>&nbsp;&nbsp;
95
+ <a href="#M000626">included</a>&nbsp;&nbsp;
96
+ <a href="#M000634">installAlias</a>&nbsp;&nbsp;
97
+ <a href="#M000632">installClassAlias</a>&nbsp;&nbsp;
98
+ <a href="#M000628">installMethodHooks</a>&nbsp;&nbsp;
99
+ <a href="#M000630">method_added</a>&nbsp;&nbsp;
100
+ <a href="#M000629">singleton_method_added</a>&nbsp;&nbsp;
101
+ <a href="#M000636">transform</a>&nbsp;&nbsp;
102
+ <a href="#M000631">transformClassMethods</a>&nbsp;&nbsp;
103
+ <a href="#M000633">transformInstanceMethods</a>&nbsp;&nbsp;
104
+ </div>
105
+ </div>
106
+
107
+ </div>
108
+
109
+
110
+ <!-- if includes -->
111
+
112
+ <div id="section">
113
+
114
+
115
+ <div id="constants-list">
116
+ <h3 class="section-bar">Constants</h3>
117
+
118
+ <div class="name-list">
119
+ <table summary="Constants">
120
+ <tr class="top-aligned-row context-row">
121
+ <td class="context-item-name">Version</td>
122
+ <td>=</td>
123
+ <td class="context-item-value">/([\d\.]+)/.match( %q{$Revision: 1.2 $} )[1]</td>
124
+ <td width="3em">&nbsp;</td>
125
+ <td class="context-item-desc">
126
+ Versioning constants
127
+
128
+ </td>
129
+ </tr>
130
+ <tr class="top-aligned-row context-row">
131
+ <td class="context-item-name">Rcsid</td>
132
+ <td>=</td>
133
+ <td class="context-item-value">%q$Id: crosscase.rb,v 1.2 2003/07/25 17:00:24 deveiant Exp $</td>
134
+ </tr>
135
+ </table>
136
+ </div>
137
+ </div>
138
+
139
+ <div id="aliases-list">
140
+ <h3 class="section-bar">External Aliases</h3>
141
+
142
+ <div class="name-list">
143
+ <table summary="aliases">
144
+ <tr class="top-aligned-row context-row">
145
+ <td class="context-item-name">singleton_method_added</td>
146
+ <td>-></td>
147
+ <td class="context-item-value">__cc_sma</td>
148
+ </tr>
149
+ <tr class="top-aligned-row context-row">
150
+ <td class="context-item-name">method_added</td>
151
+ <td>-></td>
152
+ <td class="context-item-value">__cc_ma</td>
153
+ </tr>
154
+ </table>
155
+ </div>
156
+ </div>
157
+
158
+
159
+
160
+
161
+
162
+ <!-- if method_list -->
163
+ <div id="methods">
164
+ <h3 class="section-bar">Public Class methods</h3>
165
+
166
+ <div id="method-M000627" class="method-detail">
167
+ <a name="M000627"></a>
168
+
169
+ <div class="method-heading">
170
+ <a href="#M000627" class="method-signature">
171
+ <span class="method-name">extend_object</span><span class="method-args">( mod )</span>
172
+ </a>
173
+ </div>
174
+
175
+ <div class="method-description">
176
+ <p>
177
+ <a href="Object.html">Object</a>-extension callback &#8212; installs
178
+ aliases for any currently-extant class or instance methods, and installs
179
+ callbacks that will create aliases for any subsequently-defined methods.
180
+ Raises an error if any object except a <a href="Class.html">Class</a> or <a
181
+ href="Module.html">Module</a> is extended.
182
+ </p>
183
+ <p><a class="source-toggle" href="#"
184
+ onclick="toggleCode('M000627-source');return false;">[Source]</a></p>
185
+ <div class="method-source-code" id="M000627-source">
186
+ <pre>
187
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 113</span>
188
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">extend_object</span>( <span class="ruby-identifier">mod</span> )
189
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-value str">&quot;Expected a Module or a Class, got a &quot;</span> <span class="ruby-operator">+</span>
190
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span> <span class="ruby-keyword kw">unless</span>
191
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">is_a?</span>( <span class="ruby-constant">Module</span> )
192
+
193
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">transformClassMethods</span>( <span class="ruby-identifier">mod</span> )
194
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">transformInstanceMethods</span>( <span class="ruby-identifier">mod</span> )
195
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">installMethodHooks</span>( <span class="ruby-identifier">mod</span> )
196
+ <span class="ruby-keyword kw">end</span>
197
+ </pre>
198
+ </div>
199
+ </div>
200
+ </div>
201
+
202
+ <div id="method-M000635" class="method-detail">
203
+ <a name="M000635"></a>
204
+
205
+ <div class="method-heading">
206
+ <a href="#M000635" class="method-signature">
207
+ <span class="method-name">findTargetMethods</span><span class="method-args">( *methodList ) {|meth, transformedName| ...}</span>
208
+ </a>
209
+ </div>
210
+
211
+ <div class="method-description">
212
+ <p>
213
+ Find methods in the given <tt>methodList</tt> which are candidates for
214
+ aliasing.
215
+ </p>
216
+ <p><a class="source-toggle" href="#"
217
+ onclick="toggleCode('M000635-source');return false;">[Source]</a></p>
218
+ <div class="method-source-code" id="M000635-source">
219
+ <pre>
220
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 202</span>
221
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">findTargetMethods</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">methodList</span> )
222
+ <span class="ruby-identifier">methodList</span>.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">meth</span><span class="ruby-operator">|</span>
223
+ <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/(singleton_)?method_added/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">meth</span>
224
+ <span class="ruby-identifier">transformedName</span> = <span class="ruby-identifier">transform</span>( <span class="ruby-identifier">meth</span> ) <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">next</span>
225
+ <span class="ruby-keyword kw">yield</span>( <span class="ruby-identifier">meth</span>, <span class="ruby-identifier">transformedName</span> )
226
+ }
227
+ <span class="ruby-keyword kw">end</span>
228
+ </pre>
229
+ </div>
230
+ </div>
231
+ </div>
232
+
233
+ <div id="method-M000626" class="method-detail">
234
+ <a name="M000626"></a>
235
+
236
+ <div class="method-heading">
237
+ <a href="#M000626" class="method-signature">
238
+ <span class="method-name">included</span><span class="method-args">( mod )</span>
239
+ </a>
240
+ </div>
241
+
242
+ <div class="method-description">
243
+ <p>
244
+ The inclusion callback &#8212; uses the Ouroboros trick to extend including
245
+ classes.
246
+ </p>
247
+ <p><a class="source-toggle" href="#"
248
+ onclick="toggleCode('M000626-source');return false;">[Source]</a></p>
249
+ <div class="method-source-code" id="M000626-source">
250
+ <pre>
251
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 104</span>
252
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">included</span>( <span class="ruby-identifier">mod</span> )
253
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">extend</span>( <span class="ruby-keyword kw">self</span> )
254
+ <span class="ruby-keyword kw">end</span>
255
+ </pre>
256
+ </div>
257
+ </div>
258
+ </div>
259
+
260
+ <div id="method-M000634" class="method-detail">
261
+ <a name="M000634"></a>
262
+
263
+ <div class="method-heading">
264
+ <a href="#M000634" class="method-signature">
265
+ <span class="method-name">installAlias</span><span class="method-args">( mod, meth, aliasName )</span>
266
+ </a>
267
+ </div>
268
+
269
+ <div class="method-description">
270
+ <p>
271
+ Install an alias <tt>aliasName</tt> for the given instance method
272
+ <tt>meth</tt> of the <a href="Class.html">Class</a> or <a
273
+ href="Module.html">Module</a> <tt>mod</tt>.
274
+ </p>
275
+ <p><a class="source-toggle" href="#"
276
+ onclick="toggleCode('M000634-source');return false;">[Source]</a></p>
277
+ <div class="method-source-code" id="M000634-source">
278
+ <pre>
279
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 193</span>
280
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">installAlias</span>( <span class="ruby-identifier">mod</span>, <span class="ruby-identifier">meth</span>, <span class="ruby-identifier">aliasName</span> )
281
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">instance_methods</span>(<span class="ruby-keyword kw">true</span>).<span class="ruby-identifier">include?</span>( <span class="ruby-identifier">aliasName</span> )
282
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%{alias_method :#{aliasName}, :#{meth}}</span>
283
+ <span class="ruby-keyword kw">end</span>
284
+ <span class="ruby-keyword kw">end</span>
285
+ </pre>
286
+ </div>
287
+ </div>
288
+ </div>
289
+
290
+ <div id="method-M000632" class="method-detail">
291
+ <a name="M000632"></a>
292
+
293
+ <div class="method-heading">
294
+ <a href="#M000632" class="method-signature">
295
+ <span class="method-name">installClassAlias</span><span class="method-args">( mod, meth, aliasName )</span>
296
+ </a>
297
+ </div>
298
+
299
+ <div class="method-description">
300
+ <p>
301
+ Install an alias <tt>aliasName</tt> for the given class method
302
+ <tt>meth</tt> of the <a href="Class.html">Class</a> or <a
303
+ href="Module.html">Module</a> <tt>mod</tt>.
304
+ </p>
305
+ <p><a class="source-toggle" href="#"
306
+ onclick="toggleCode('M000632-source');return false;">[Source]</a></p>
307
+ <div class="method-source-code" id="M000632-source">
308
+ <pre>
309
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 172</span>
310
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">installClassAlias</span>( <span class="ruby-identifier">mod</span>, <span class="ruby-identifier">meth</span>, <span class="ruby-identifier">aliasName</span> )
311
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">aliasName</span> )
312
+ <span class="ruby-identifier">code</span> = <span class="ruby-node">%{
313
+ class &lt;&lt; self; alias_method( :#{aliasName}, :#{meth} ); end
314
+ }</span>
315
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">module_eval</span>( <span class="ruby-identifier">code</span>, <span class="ruby-keyword kw">__FILE__</span>, <span class="ruby-keyword kw">__LINE__</span> )
316
+ <span class="ruby-keyword kw">end</span>
317
+ <span class="ruby-keyword kw">end</span>
318
+ </pre>
319
+ </div>
320
+ </div>
321
+ </div>
322
+
323
+ <div id="method-M000628" class="method-detail">
324
+ <a name="M000628"></a>
325
+
326
+ <div class="method-heading">
327
+ <a href="#M000628" class="method-signature">
328
+ <span class="method-name">installMethodHooks</span><span class="method-args">( mod )</span>
329
+ </a>
330
+ </div>
331
+
332
+ <div class="method-description">
333
+ <p>
334
+ Install <tt><a href="CrossCase.html#M000630">method_added</a></tt> and
335
+ <tt><a href="CrossCase.html#M000629">singleton_method_added</a></tt> hooks
336
+ into the given <a href="Module.html">Module</a> <tt>mod</tt> which
337
+ auto-generate aliases for new methods.
338
+ </p>
339
+ <p><a class="source-toggle" href="#"
340
+ onclick="toggleCode('M000628-source');return false;">[Source]</a></p>
341
+ <div class="method-source-code" id="M000628-source">
342
+ <pre>
343
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 126</span>
344
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">installMethodHooks</span>( <span class="ruby-identifier">mod</span> )
345
+ <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">module_eval</span> {
346
+ <span class="ruby-keyword kw">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>
347
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">:singleton_method_added</span> )
348
+ <span class="ruby-keyword kw">alias</span> <span class="ruby-identifier">:__cc_sma</span> <span class="ruby-identifier">:singleton_method_added</span>
349
+ <span class="ruby-keyword kw">end</span>
350
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singleton_method_added</span>( <span class="ruby-identifier">id</span> )
351
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aliasName</span> = <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">transform</span>( <span class="ruby-identifier">id</span> )
352
+ <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">installClassAlias</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">aliasName</span> )
353
+ <span class="ruby-keyword kw">end</span>
354
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">:__cc_sma</span> )
355
+ <span class="ruby-identifier">__cc_sma</span>( <span class="ruby-identifier">id</span> )
356
+ <span class="ruby-keyword kw">else</span>
357
+ <span class="ruby-keyword kw">super</span>
358
+ <span class="ruby-keyword kw">end</span>
359
+ <span class="ruby-keyword kw">end</span>
360
+
361
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">:method_added</span> )
362
+ <span class="ruby-keyword kw">alias</span> <span class="ruby-identifier">:__cc_ma</span> <span class="ruby-identifier">:method_added</span>
363
+ <span class="ruby-keyword kw">end</span>
364
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_added</span>( <span class="ruby-identifier">id</span> )
365
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aliasName</span> = <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">transform</span>( <span class="ruby-identifier">id</span> )
366
+ <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">installAlias</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">aliasName</span> )
367
+ <span class="ruby-keyword kw">end</span>
368
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">:__cc_ma</span> )
369
+ <span class="ruby-identifier">__cc_ma</span>( <span class="ruby-identifier">id</span> )
370
+ <span class="ruby-keyword kw">else</span>
371
+ <span class="ruby-keyword kw">super</span>
372
+ <span class="ruby-keyword kw">end</span>
373
+ <span class="ruby-keyword kw">end</span>
374
+ <span class="ruby-keyword kw">end</span>
375
+ }
376
+ <span class="ruby-keyword kw">end</span>
377
+ </pre>
378
+ </div>
379
+ </div>
380
+ </div>
381
+
382
+ <div id="method-M000630" class="method-detail">
383
+ <a name="M000630"></a>
384
+
385
+ <div class="method-heading">
386
+ <a href="#M000630" class="method-signature">
387
+ <span class="method-name">method_added</span><span class="method-args">( id )</span>
388
+ </a>
389
+ </div>
390
+
391
+ <div class="method-description">
392
+ <p><a class="source-toggle" href="#"
393
+ onclick="toggleCode('M000630-source');return false;">[Source]</a></p>
394
+ <div class="method-source-code" id="M000630-source">
395
+ <pre>
396
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 146</span>
397
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_added</span>( <span class="ruby-identifier">id</span> )
398
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aliasName</span> = <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">transform</span>( <span class="ruby-identifier">id</span> )
399
+ <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">installAlias</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">aliasName</span> )
400
+ <span class="ruby-keyword kw">end</span>
401
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">:__cc_ma</span> )
402
+ <span class="ruby-identifier">__cc_ma</span>( <span class="ruby-identifier">id</span> )
403
+ <span class="ruby-keyword kw">else</span>
404
+ <span class="ruby-keyword kw">super</span>
405
+ <span class="ruby-keyword kw">end</span>
406
+ <span class="ruby-keyword kw">end</span>
407
+ </pre>
408
+ </div>
409
+ </div>
410
+ </div>
411
+
412
+ <div id="method-M000629" class="method-detail">
413
+ <a name="M000629"></a>
414
+
415
+ <div class="method-heading">
416
+ <a href="#M000629" class="method-signature">
417
+ <span class="method-name">singleton_method_added</span><span class="method-args">( id )</span>
418
+ </a>
419
+ </div>
420
+
421
+ <div class="method-description">
422
+ <p><a class="source-toggle" href="#"
423
+ onclick="toggleCode('M000629-source');return false;">[Source]</a></p>
424
+ <div class="method-source-code" id="M000629-source">
425
+ <pre>
426
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 132</span>
427
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singleton_method_added</span>( <span class="ruby-identifier">id</span> )
428
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aliasName</span> = <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">transform</span>( <span class="ruby-identifier">id</span> )
429
+ <span class="ruby-constant">CrossCase</span><span class="ruby-operator">::</span><span class="ruby-identifier">installClassAlias</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">aliasName</span> )
430
+ <span class="ruby-keyword kw">end</span>
431
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>( <span class="ruby-identifier">:__cc_sma</span> )
432
+ <span class="ruby-identifier">__cc_sma</span>( <span class="ruby-identifier">id</span> )
433
+ <span class="ruby-keyword kw">else</span>
434
+ <span class="ruby-keyword kw">super</span>
435
+ <span class="ruby-keyword kw">end</span>
436
+ <span class="ruby-keyword kw">end</span>
437
+ </pre>
438
+ </div>
439
+ </div>
440
+ </div>
441
+
442
+ <div id="method-M000636" class="method-detail">
443
+ <a name="M000636"></a>
444
+
445
+ <div class="method-heading">
446
+ <a href="#M000636" class="method-signature">
447
+ <span class="method-name">transform</span><span class="method-args">( mid )</span>
448
+ </a>
449
+ </div>
450
+
451
+ <div class="method-description">
452
+ <p>
453
+ Return an alternate name for the given method id <tt>mid</tt>. If the
454
+ method id is an under_barred method, returns a camelCased version, and
455
+ vice-versa. If no alternate is called for, returns <tt>nil</tt>.
456
+ </p>
457
+ <p><a class="source-toggle" href="#"
458
+ onclick="toggleCode('M000636-source');return false;">[Source]</a></p>
459
+ <div class="method-source-code" id="M000636-source">
460
+ <pre>
461
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 214</span>
462
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">transform</span>( <span class="ruby-identifier">mid</span> )
463
+ <span class="ruby-identifier">methodName</span> = <span class="ruby-identifier">mid</span>.<span class="ruby-identifier">to_s</span>
464
+ <span class="ruby-identifier">transformedName</span> = <span class="ruby-value str">''</span>
465
+
466
+ <span class="ruby-comment cmt"># camelCased methods</span>
467
+ <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/[A-Z]/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">methodName</span> ) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-regexp re">/_/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">methodName</span> )
468
+ <span class="ruby-identifier">transformedName</span> = <span class="ruby-identifier">methodName</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/([a-z0-9])([A-Z])/</span> ) {<span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
469
+ <span class="ruby-identifier">$1</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$2</span>
470
+ }.<span class="ruby-identifier">downcase</span>
471
+
472
+ <span class="ruby-comment cmt"># underbarred_methods</span>
473
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span><span class="ruby-regexp re">/A-Z/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">methodName</span> ) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp re">/[a-z0-9]_[a-z]/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">methodName</span> )
474
+ <span class="ruby-identifier">transformedName</span> = <span class="ruby-identifier">methodName</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/([a-z0-9])_([a-z])/</span> ) {<span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
475
+ <span class="ruby-identifier">$1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span>
476
+ }
477
+
478
+ <span class="ruby-keyword kw">else</span>
479
+ <span class="ruby-identifier">transformedName</span> = <span class="ruby-keyword kw">nil</span>
480
+ <span class="ruby-keyword kw">end</span>
481
+
482
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">transformedName</span>
483
+ <span class="ruby-keyword kw">end</span>
484
+ </pre>
485
+ </div>
486
+ </div>
487
+ </div>
488
+
489
+ <div id="method-M000631" class="method-detail">
490
+ <a name="M000631"></a>
491
+
492
+ <div class="method-heading">
493
+ <a href="#M000631" class="method-signature">
494
+ <span class="method-name">transformClassMethods</span><span class="method-args">( mod )</span>
495
+ </a>
496
+ </div>
497
+
498
+ <div class="method-description">
499
+ <p>
500
+ Search for and install aliases for either underbarred or camelCased class
501
+ methods for <tt>mod</tt> (a <a href="Class.html">Class</a> or <a
502
+ href="Module.html">Module</a>).
503
+ </p>
504
+ <p><a class="source-toggle" href="#"
505
+ onclick="toggleCode('M000631-source');return false;">[Source]</a></p>
506
+ <div class="method-source-code" id="M000631-source">
507
+ <pre>
508
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 163</span>
509
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">transformClassMethods</span>( <span class="ruby-identifier">mod</span> )
510
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">findTargetMethods</span>( <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">singleton_methods</span>(<span class="ruby-keyword kw">false</span>) ) {<span class="ruby-operator">|</span><span class="ruby-identifier">meth</span>, <span class="ruby-identifier">aliasName</span><span class="ruby-operator">|</span>
511
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">installClassAlias</span>( <span class="ruby-identifier">mod</span>, <span class="ruby-identifier">meth</span>, <span class="ruby-identifier">aliasName</span> )
512
+ }
513
+ <span class="ruby-keyword kw">end</span>
514
+ </pre>
515
+ </div>
516
+ </div>
517
+ </div>
518
+
519
+ <div id="method-M000633" class="method-detail">
520
+ <a name="M000633"></a>
521
+
522
+ <div class="method-heading">
523
+ <a href="#M000633" class="method-signature">
524
+ <span class="method-name">transformInstanceMethods</span><span class="method-args">( mod )</span>
525
+ </a>
526
+ </div>
527
+
528
+ <div class="method-description">
529
+ <p>
530
+ Search for and install aliases for either underbarred or camelCased
531
+ instance methods for <tt>mod</tt> (a <a href="Class.html">Class</a> or <a
532
+ href="Module.html">Module</a>).
533
+ </p>
534
+ <p><a class="source-toggle" href="#"
535
+ onclick="toggleCode('M000633-source');return false;">[Source]</a></p>
536
+ <div class="method-source-code" id="M000633-source">
537
+ <pre>
538
+ <span class="ruby-comment cmt"># File lib/carat/crosscase.rb, line 184</span>
539
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">transformInstanceMethods</span>( <span class="ruby-identifier">mod</span> )
540
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">findTargetMethods</span>( <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">instance_methods</span>(<span class="ruby-keyword kw">false</span>) ) {<span class="ruby-operator">|</span><span class="ruby-identifier">meth</span>, <span class="ruby-identifier">aliasName</span><span class="ruby-operator">|</span>
541
+ <span class="ruby-keyword kw">self</span><span class="ruby-operator">::</span><span class="ruby-identifier">installAlias</span>( <span class="ruby-identifier">mod</span>, <span class="ruby-identifier">meth</span>, <span class="ruby-identifier">aliasName</span> )
542
+ }
543
+ <span class="ruby-keyword kw">end</span>
544
+ </pre>
545
+ </div>
546
+ </div>
547
+ </div>
548
+
549
+
550
+ </div>
551
+
552
+
553
+ </div>
554
+
555
+
556
+ <div id="validator-badges">
557
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
558
+ </div>
559
+
560
+ </body>
561
+ </html>