carats 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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,222 @@
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: Text::Soundex</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">Text::Soundex</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/carat/soundex_rb.html">
59
+ lib/carat/soundex.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
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000420">get_code</a>&nbsp;&nbsp;
84
+ <a href="#M000418">soundex</a>&nbsp;&nbsp;
85
+ <a href="#M000419">soundex_str</a>&nbsp;&nbsp;
86
+ </div>
87
+ </div>
88
+
89
+ </div>
90
+
91
+
92
+ <!-- if includes -->
93
+
94
+ <div id="section">
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ <!-- if method_list -->
104
+ <div id="methods">
105
+ <h3 class="section-bar">Public Instance methods</h3>
106
+
107
+ <div id="method-M000418" class="method-detail">
108
+ <a name="M000418"></a>
109
+
110
+ <div class="method-heading">
111
+ <a href="#M000418" class="method-signature">
112
+ <span class="method-name">soundex</span><span class="method-args">(str_or_arr)</span>
113
+ </a>
114
+ </div>
115
+
116
+ <div class="method-description">
117
+ <p><a class="source-toggle" href="#"
118
+ onclick="toggleCode('M000418-source');return false;">[Source]</a></p>
119
+ <div class="method-source-code" id="M000418-source">
120
+ <pre>
121
+ <span class="ruby-comment cmt"># File lib/carat/soundex.rb, line 27</span>
122
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">soundex</span>(<span class="ruby-identifier">str_or_arr</span>)
123
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">str_or_arr</span>
124
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
125
+ <span class="ruby-identifier">soundex_str</span>(<span class="ruby-identifier">str_or_arr</span>)
126
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
127
+ <span class="ruby-identifier">str_or_arr</span>.<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">ele</span><span class="ruby-operator">|</span> <span class="ruby-identifier">soundex_str</span>(<span class="ruby-identifier">ele</span>)}
128
+ <span class="ruby-keyword kw">else</span>
129
+ <span class="ruby-keyword kw">nil</span>
130
+ <span class="ruby-keyword kw">end</span>
131
+ <span class="ruby-keyword kw">end</span>
132
+ </pre>
133
+ </div>
134
+ </div>
135
+ </div>
136
+
137
+ <h3 class="section-bar">Private Instance methods</h3>
138
+
139
+ <div id="method-M000420" class="method-detail">
140
+ <a name="M000420"></a>
141
+
142
+ <div class="method-heading">
143
+ <a href="#M000420" class="method-signature">
144
+ <span class="method-name">get_code</span><span class="method-args">(char)</span>
145
+ </a>
146
+ </div>
147
+
148
+ <div class="method-description">
149
+ <p><a class="source-toggle" href="#"
150
+ onclick="toggleCode('M000420-source');return false;">[Source]</a></p>
151
+ <div class="method-source-code" id="M000420-source">
152
+ <pre>
153
+ <span class="ruby-comment cmt"># File lib/carat/soundex.rb, line 71</span>
154
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_code</span>(<span class="ruby-identifier">char</span>)
155
+ <span class="ruby-identifier">char</span>.<span class="ruby-identifier">tr!</span> <span class="ruby-value str">&quot;AEIOUYWHBPFVCSKGJQXZDTLMNR&quot;</span>, <span class="ruby-value str">&quot;00000000111122222222334556&quot;</span>
156
+ <span class="ruby-keyword kw">end</span>
157
+ </pre>
158
+ </div>
159
+ </div>
160
+ </div>
161
+
162
+ <div id="method-M000419" class="method-detail">
163
+ <a name="M000419"></a>
164
+
165
+ <div class="method-heading">
166
+ <a href="#M000419" class="method-signature">
167
+ <span class="method-name">soundex_str</span><span class="method-args">(str)</span>
168
+ </a>
169
+ </div>
170
+
171
+ <div class="method-description">
172
+ <p>
173
+ returns nil if the value couldn&#8217;t be calculated (empty-string,
174
+ wrong-character) do not change the parameter &quot;str&quot;
175
+ </p>
176
+ <p><a class="source-toggle" href="#"
177
+ onclick="toggleCode('M000419-source');return false;">[Source]</a></p>
178
+ <div class="method-source-code" id="M000419-source">
179
+ <pre>
180
+ <span class="ruby-comment cmt"># File lib/carat/soundex.rb, line 45</span>
181
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">soundex_str</span>(<span class="ruby-identifier">str</span>)
182
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">empty?</span>
183
+
184
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">upcase</span>
185
+ <span class="ruby-identifier">last_code</span> = <span class="ruby-identifier">get_code</span>(<span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>])
186
+ <span class="ruby-identifier">soundex_code</span> = <span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>]
187
+
188
+ <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">index</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">1</span><span class="ruby-operator">...</span>(<span class="ruby-identifier">str</span>.<span class="ruby-identifier">size</span>) <span class="ruby-keyword kw">do</span>
189
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">soundex_code</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">soundex_code</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
190
+
191
+ <span class="ruby-identifier">code</span> = <span class="ruby-identifier">get_code</span>(<span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>,<span class="ruby-value">1</span>])
192
+
193
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">then</span>
194
+ <span class="ruby-identifier">last_code</span> = <span class="ruby-keyword kw">nil</span>
195
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">then</span>
196
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
197
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">last_code</span> <span class="ruby-keyword kw">then</span>
198
+ <span class="ruby-identifier">soundex_code</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">code</span>
199
+ <span class="ruby-identifier">last_code</span> = <span class="ruby-identifier">code</span>
200
+ <span class="ruby-keyword kw">end</span>
201
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># for
202
+
203
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">soundex_code</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;000&quot;</span>[<span class="ruby-value">0</span>,<span class="ruby-value">4</span><span class="ruby-operator">-</span><span class="ruby-identifier">soundex_code</span>.<span class="ruby-identifier">size</span>]
204
+ <span class="ruby-keyword kw">end</span>
205
+ </pre>
206
+ </div>
207
+ </div>
208
+ </div>
209
+
210
+
211
+ </div>
212
+
213
+
214
+ </div>
215
+
216
+
217
+ <div id="validator-badges">
218
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
219
+ </div>
220
+
221
+ </body>
222
+ </html>
@@ -0,0 +1,911 @@
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: TextTagIterator</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">TextTagIterator</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/carat/tagiter_rb.html">
59
+ lib/carat/tagiter.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>Tagiter</h1>
85
+ <p>
86
+ Simple but very useful <a href="HTML.html">HTML</a>/XHTML cascading parser
87
+ for those quick and dirty web page parse jobs.
88
+ </p>
89
+ <h2>Usage</h2>
90
+ <pre>
91
+ # sample html
92
+ stext = &lt;&lt;-EOF
93
+ &lt;body&gt; This is a test...
94
+ &lt;sub&gt; S1 &lt;/sub&gt; &lt;sub&gt; S2 &lt;/sub&gt;
95
+ &lt;DL&gt;
96
+ &lt;DT&gt; A1
97
+ &lt;DT&gt; A2
98
+ &lt;DT&gt; A3
99
+ &lt;/DL&gt;
100
+ &lt;DL&gt;
101
+ &lt;DT&gt; B1
102
+ &lt;DT&gt; B2
103
+ &lt;DT&gt; B3
104
+ &lt;/DL&gt;
105
+ &lt;NEST&gt;
106
+ &lt;P ALIGN=&quot;R&quot;&gt;TOP&lt;/P&gt;
107
+ &lt;NEST&gt;
108
+ &lt;P&gt;SECOND&lt;/P&gt;
109
+ &lt;OL&gt;
110
+ &lt;LI&gt;C1
111
+ &lt;LI&gt;C2
112
+ &lt;LI&gt;C3
113
+ &lt;LI&gt;C4
114
+ &lt;/OL&gt;
115
+ &lt;/NEST&gt;
116
+ &lt;OL&gt;
117
+ &lt;LI&gt;D1
118
+ &lt;LI&gt;D2
119
+ &lt;LI&gt;D3
120
+ &lt;LI&gt;D4
121
+ &lt;/OL&gt;
122
+ &lt;/NEST&gt;
123
+ &lt;/body&gt;
124
+ EOF
125
+
126
+ a = TextTagIterator.new(stext)
127
+ a.first(&quot;body&quot;) do |y|
128
+ y.nth(&quot;dl&quot;,2) do |dl|
129
+ dl.enumtag(&quot;dt&quot;) do |t|
130
+ puts t.text.strip
131
+ end
132
+ end
133
+ y.first(&quot;nest&quot;) do |n|
134
+ n.first(&quot;p&quot;) do |c|
135
+ print c.text, ' '
136
+ puts c.attributes.collect{ |k,v| &quot;#{k}=#{v}&quot; }
137
+ end.next(&quot;nest&quot;) do |m|
138
+ m.first(&quot;p&quot;) do |c|
139
+ puts c.text
140
+ end.next(&quot;ol&quot;) do |o|
141
+ o.enumtag(&quot;li&quot;) do |i| puts i.text.strip end
142
+ end
143
+ end.next(&quot;ol&quot;) do |o|
144
+ o.enumtag(&quot;li&quot;) do |i| puts i.text.strip end
145
+ end
146
+ end
147
+ end
148
+ a.each_block(&quot;sub&quot;) do |y|
149
+ puts y.text.strip
150
+ end
151
+ </pre>
152
+ <p>
153
+ produces
154
+ </p>
155
+ <pre>
156
+ B1
157
+ B2
158
+ B3
159
+ TOP align=R
160
+ SECOND
161
+ C1
162
+ C2
163
+ C3
164
+ C4
165
+ D1
166
+ D2
167
+ D3
168
+ D4
169
+ S1
170
+ S2
171
+ </pre>
172
+ <h2>Author</h2>
173
+ <p>
174
+ *ɂႷ &lt;nyasu@osk.3web.ne.jp&gt;
175
+ </p>
176
+ <h2>Legal</h2>
177
+ <pre>
178
+ Copyright (c) 2000 Ⴗ &lt;nyasu@osk.3web.ne.jp&gt;
179
+ </pre>
180
+ <h2>History</h2>
181
+ <ul>
182
+ <li>2004/11/30 added to collection
183
+
184
+ </li>
185
+ <li>2000/09/18 made attribute name case-ignored.
186
+
187
+ </li>
188
+ <li>2000/06/06 added a new method : nth_trailer(tag,n).
189
+
190
+ <pre>
191
+ fixed regexp of tagnext method.
192
+ </pre>
193
+ </li>
194
+ <li>2000/06/05 added new methods for information. tagexist?(tag) and tagnext.
195
+
196
+ <pre>
197
+ fixed bugs on return values of each_block
198
+ </pre>
199
+ </li>
200
+ <li>2000/06/01 fixed nth method which sometimes crashes at the end-of-file.
201
+
202
+ <pre>
203
+ (reported by Matsui-san)
204
+ </pre>
205
+ </li>
206
+ <li>2000/05/08 fixed enumtag which yields only half of texts in some conditions
207
+
208
+ </li>
209
+ <li>2000/04/27 regexp debugged in <a
210
+ href="TextTagIterator.html#M000360">parse_attribute</a>
211
+
212
+ </li>
213
+ <li>2000/03/12 started
214
+
215
+ </li>
216
+ </ul>
217
+
218
+ </div>
219
+
220
+
221
+ </div>
222
+
223
+ <div id="method-list">
224
+ <h3 class="section-bar">Methods</h3>
225
+
226
+ <div class="name-list">
227
+ <a href="#M000369">collect</a>&nbsp;&nbsp;
228
+ <a href="#M000368">each_block</a>&nbsp;&nbsp;
229
+ <a href="#M000371">enumcollect</a>&nbsp;&nbsp;
230
+ <a href="#M000370">enumtag</a>&nbsp;&nbsp;
231
+ <a href="#M000363">find_closeenumtag</a>&nbsp;&nbsp;
232
+ <a href="#M000362">find_closetag</a>&nbsp;&nbsp;
233
+ <a href="#M000359">find_element</a>&nbsp;&nbsp;
234
+ <a href="#M000364">find_openenumtag</a>&nbsp;&nbsp;
235
+ <a href="#M000361">find_opentag</a>&nbsp;&nbsp;
236
+ <a href="#M000366">first</a>&nbsp;&nbsp;
237
+ <a href="#M000372">for_this</a>&nbsp;&nbsp;
238
+ <a href="#M000374">get_first</a>&nbsp;&nbsp;
239
+ <a href="#M000373">get_nth</a>&nbsp;&nbsp;
240
+ <a href="#M000358">new</a>&nbsp;&nbsp;
241
+ <a href="#M000367">next</a>&nbsp;&nbsp;
242
+ <a href="#M000365">nth</a>&nbsp;&nbsp;
243
+ <a href="#M000377">nth_tailer</a>&nbsp;&nbsp;
244
+ <a href="#M000360">parse_attribute</a>&nbsp;&nbsp;
245
+ <a href="#M000375">tagexist?</a>&nbsp;&nbsp;
246
+ <a href="#M000376">tagnext</a>&nbsp;&nbsp;
247
+ </div>
248
+ </div>
249
+
250
+ </div>
251
+
252
+
253
+ <!-- if includes -->
254
+
255
+ <div id="section">
256
+
257
+
258
+
259
+
260
+
261
+ <div id="attribute-list">
262
+ <h3 class="section-bar">Attributes</h3>
263
+
264
+ <div class="name-list">
265
+ <table>
266
+ <tr class="top-aligned-row context-row">
267
+ <td class="context-item-name">attributes</td>
268
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
269
+ <td class="context-item-desc"></td>
270
+ </tr>
271
+ <tr class="top-aligned-row context-row">
272
+ <td class="context-item-name">option</td>
273
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
274
+ <td class="context-item-desc"></td>
275
+ </tr>
276
+ <tr class="top-aligned-row context-row">
277
+ <td class="context-item-name">tag</td>
278
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
279
+ <td class="context-item-desc"></td>
280
+ </tr>
281
+ <tr class="top-aligned-row context-row">
282
+ <td class="context-item-name">text</td>
283
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
284
+ <td class="context-item-desc"></td>
285
+ </tr>
286
+ </table>
287
+ </div>
288
+ </div>
289
+
290
+
291
+
292
+ <!-- if method_list -->
293
+ <div id="methods">
294
+ <h3 class="section-bar">Public Class methods</h3>
295
+
296
+ <div id="method-M000358" class="method-detail">
297
+ <a name="M000358"></a>
298
+
299
+ <div class="method-heading">
300
+ <a href="#M000358" class="method-signature">
301
+ <span class="method-name">new</span><span class="method-args">(text,tag=nil,attributes={})</span>
302
+ </a>
303
+ </div>
304
+
305
+ <div class="method-description">
306
+ <p><a class="source-toggle" href="#"
307
+ onclick="toggleCode('M000358-source');return false;">[Source]</a></p>
308
+ <div class="method-source-code" id="M000358-source">
309
+ <pre>
310
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 120</span>
311
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">text</span>,<span class="ruby-identifier">tag</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">attributes</span>={})
312
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>,<span class="ruby-value str">&quot;Only String accepted&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
313
+ <span class="ruby-ivar">@text</span>=<span class="ruby-identifier">text</span>
314
+ <span class="ruby-ivar">@option</span>=<span class="ruby-value str">&quot;pi&quot;</span>
315
+ <span class="ruby-ivar">@tag</span>=<span class="ruby-identifier">tag</span>
316
+ <span class="ruby-ivar">@attributes</span>=<span class="ruby-identifier">attributes</span>
317
+ <span class="ruby-keyword kw">def</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-operator">[]</span>(<span class="ruby-identifier">aname</span>)
318
+ <span class="ruby-keyword kw">super</span> <span class="ruby-identifier">aname</span>.<span class="ruby-identifier">downcase</span>
319
+ <span class="ruby-keyword kw">end</span>
320
+ <span class="ruby-keyword kw">end</span>
321
+ </pre>
322
+ </div>
323
+ </div>
324
+ </div>
325
+
326
+ <h3 class="section-bar">Public Instance methods</h3>
327
+
328
+ <div id="method-M000369" class="method-detail">
329
+ <a name="M000369"></a>
330
+
331
+ <div class="method-heading">
332
+ <a href="#M000369" class="method-signature">
333
+ <span class="method-name">collect</span><span class="method-args">(*arg)</span>
334
+ </a>
335
+ </div>
336
+
337
+ <div class="method-description">
338
+ <p><a class="source-toggle" href="#"
339
+ onclick="toggleCode('M000369-source');return false;">[Source]</a></p>
340
+ <div class="method-source-code" id="M000369-source">
341
+ <pre>
342
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 227</span>
343
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>)
344
+ <span class="ruby-identifier">a</span>=[]
345
+ <span class="ruby-identifier">each_block</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">tt</span> <span class="ruby-keyword kw">end</span>
346
+ <span class="ruby-identifier">a</span>
347
+ <span class="ruby-keyword kw">end</span>
348
+ </pre>
349
+ </div>
350
+ </div>
351
+ </div>
352
+
353
+ <div id="method-M000368" class="method-detail">
354
+ <a name="M000368"></a>
355
+
356
+ <div class="method-heading">
357
+ <a href="#M000368" class="method-signature">
358
+ <span class="method-name">each_block</span><span class="method-args">(tag,closetag=nil) {|self.class.new(@text[s..e],tag,parse_attribute(d))| ...}</span>
359
+ </a>
360
+ </div>
361
+
362
+ <div class="method-description">
363
+ <p><a class="source-toggle" href="#"
364
+ onclick="toggleCode('M000368-source');return false;">[Source]</a></p>
365
+ <div class="method-source-code" id="M000368-source">
366
+ <pre>
367
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 203</span>
368
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_block</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">closetag</span>=<span class="ruby-keyword kw">nil</span>)
369
+ <span class="ruby-identifier">t</span>=<span class="ruby-value">0</span>
370
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> =<span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>)
371
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>,<span class="ruby-node">&quot;tag(#{tag}) not found&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
372
+
373
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">do</span>
374
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">closetag</span> <span class="ruby-keyword kw">then</span>
375
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">closetag</span>,<span class="ruby-identifier">s</span>,<span class="ruby-identifier">tag</span>)
376
+ <span class="ruby-keyword kw">else</span>
377
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span>)
378
+ <span class="ruby-keyword kw">end</span>
379
+ <span class="ruby-identifier">e</span>=<span class="ruby-value">-1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">e</span>
380
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>],<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">parse_attribute</span>(<span class="ruby-identifier">d</span>))
381
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span><span class="ruby-operator">&gt;=</span><span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span>
382
+ <span class="ruby-identifier">t</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'&gt;'</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
383
+ <span class="ruby-identifier">t</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
384
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">t</span>)
385
+ <span class="ruby-keyword kw">else</span>
386
+ <span class="ruby-identifier">s</span>=<span class="ruby-keyword kw">false</span>
387
+ <span class="ruby-keyword kw">end</span>
388
+ <span class="ruby-keyword kw">end</span>
389
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>[<span class="ruby-identifier">t</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>])
390
+ <span class="ruby-keyword kw">end</span>
391
+ </pre>
392
+ </div>
393
+ </div>
394
+ </div>
395
+
396
+ <div id="method-M000371" class="method-detail">
397
+ <a name="M000371"></a>
398
+
399
+ <div class="method-heading">
400
+ <a href="#M000371" class="method-signature">
401
+ <span class="method-name">enumcollect</span><span class="method-args">(tag)</span>
402
+ </a>
403
+ </div>
404
+
405
+ <div class="method-description">
406
+ <p><a class="source-toggle" href="#"
407
+ onclick="toggleCode('M000371-source');return false;">[Source]</a></p>
408
+ <div class="method-source-code" id="M000371-source">
409
+ <pre>
410
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 243</span>
411
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enumcollect</span>(<span class="ruby-identifier">tag</span>)
412
+ <span class="ruby-identifier">a</span>=[]
413
+ <span class="ruby-identifier">enumtag</span>(<span class="ruby-identifier">tag</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">t</span> <span class="ruby-keyword kw">end</span>
414
+ <span class="ruby-identifier">a</span>
415
+ <span class="ruby-keyword kw">end</span>
416
+ </pre>
417
+ </div>
418
+ </div>
419
+ </div>
420
+
421
+ <div id="method-M000370" class="method-detail">
422
+ <a name="M000370"></a>
423
+
424
+ <div class="method-heading">
425
+ <a href="#M000370" class="method-signature">
426
+ <span class="method-name">enumtag</span><span class="method-args">(tag) {|self.class.new(@text[s..e],tag,parse_attribute(d))| ...}</span>
427
+ </a>
428
+ </div>
429
+
430
+ <div class="method-description">
431
+ <p><a class="source-toggle" href="#"
432
+ onclick="toggleCode('M000370-source');return false;">[Source]</a></p>
433
+ <div class="method-source-code" id="M000370-source">
434
+ <pre>
435
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 233</span>
436
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enumtag</span>(<span class="ruby-identifier">tag</span>)
437
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_openenumtag</span>(<span class="ruby-identifier">tag</span>)
438
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">do</span>
439
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closeenumtag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
440
+ <span class="ruby-identifier">e</span>=<span class="ruby-value">-1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">e</span>
441
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>],<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">parse_attribute</span>(<span class="ruby-identifier">d</span>))
442
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_openenumtag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span>)
443
+ <span class="ruby-keyword kw">end</span>
444
+ <span class="ruby-keyword kw">end</span>
445
+ </pre>
446
+ </div>
447
+ </div>
448
+ </div>
449
+
450
+ <div id="method-M000366" class="method-detail">
451
+ <a name="M000366"></a>
452
+
453
+ <div class="method-heading">
454
+ <a href="#M000366" class="method-signature">
455
+ <span class="method-name">first</span><span class="method-args">(tag,*arg) {|f end end| ...}</span>
456
+ </a>
457
+ </div>
458
+
459
+ <div class="method-description">
460
+ <p><a class="source-toggle" href="#"
461
+ onclick="toggleCode('M000366-source');return false;">[Source]</a></p>
462
+ <div class="method-source-code" id="M000366-source">
463
+ <pre>
464
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 200</span>
465
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-identifier">nth</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-value">1</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">end</span>
466
+ <span class="ruby-keyword kw">alias</span> <span class="ruby-identifier">:next</span> <span class="ruby-identifier">first</span>
467
+
468
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_block</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">closetag</span>=<span class="ruby-keyword kw">nil</span>)
469
+ <span class="ruby-identifier">t</span>=<span class="ruby-value">0</span>
470
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> =<span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>)
471
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>,<span class="ruby-node">&quot;tag(#{tag}) not found&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
472
+
473
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">do</span>
474
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">closetag</span> <span class="ruby-keyword kw">then</span>
475
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">closetag</span>,<span class="ruby-identifier">s</span>,<span class="ruby-identifier">tag</span>)
476
+ <span class="ruby-keyword kw">else</span>
477
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span>)
478
+ <span class="ruby-keyword kw">end</span>
479
+ <span class="ruby-identifier">e</span>=<span class="ruby-value">-1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">e</span>
480
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>],<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">parse_attribute</span>(<span class="ruby-identifier">d</span>))
481
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span><span class="ruby-operator">&gt;=</span><span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span>
482
+ <span class="ruby-identifier">t</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'&gt;'</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
483
+ <span class="ruby-identifier">t</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
484
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">t</span>)
485
+ <span class="ruby-keyword kw">else</span>
486
+ <span class="ruby-identifier">s</span>=<span class="ruby-keyword kw">false</span>
487
+ <span class="ruby-keyword kw">end</span>
488
+ <span class="ruby-keyword kw">end</span>
489
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>[<span class="ruby-identifier">t</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>])
490
+ <span class="ruby-keyword kw">end</span>
491
+
492
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>)
493
+ <span class="ruby-identifier">a</span>=[]
494
+ <span class="ruby-identifier">each_block</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">tt</span> <span class="ruby-keyword kw">end</span>
495
+ <span class="ruby-identifier">a</span>
496
+ <span class="ruby-keyword kw">end</span>
497
+
498
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enumtag</span>(<span class="ruby-identifier">tag</span>)
499
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_openenumtag</span>(<span class="ruby-identifier">tag</span>)
500
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">do</span>
501
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closeenumtag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
502
+ <span class="ruby-identifier">e</span>=<span class="ruby-value">-1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">e</span>
503
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>],<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">parse_attribute</span>(<span class="ruby-identifier">d</span>))
504
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_openenumtag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span>)
505
+ <span class="ruby-keyword kw">end</span>
506
+ <span class="ruby-keyword kw">end</span>
507
+
508
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enumcollect</span>(<span class="ruby-identifier">tag</span>)
509
+ <span class="ruby-identifier">a</span>=[]
510
+ <span class="ruby-identifier">enumtag</span>(<span class="ruby-identifier">tag</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">t</span> <span class="ruby-keyword kw">end</span>
511
+ <span class="ruby-identifier">a</span>
512
+ <span class="ruby-keyword kw">end</span>
513
+
514
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">for_this</span>
515
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
516
+ <span class="ruby-keyword kw">end</span>
517
+
518
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_nth</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-identifier">r</span>=<span class="ruby-keyword kw">nil</span>; <span class="ruby-identifier">nth</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bl</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>=<span class="ruby-identifier">bl</span> <span class="ruby-keyword kw">end</span>; <span class="ruby-identifier">r</span>; <span class="ruby-keyword kw">end</span>
519
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_first</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-identifier">r</span>=<span class="ruby-keyword kw">nil</span>; <span class="ruby-identifier">first</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bl</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>=<span class="ruby-identifier">bl</span> <span class="ruby-keyword kw">end</span>; <span class="ruby-identifier">r</span>; <span class="ruby-keyword kw">end</span>
520
+
521
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tagexist?</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>=<span class="ruby-value">0</span>)
522
+ <span class="ruby-identifier">s</span>=<span class="ruby-identifier">find_element</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>)
523
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">end</span>
524
+ <span class="ruby-keyword kw">end</span>
525
+
526
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tagnext</span>
527
+ <span class="ruby-identifier">s</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;&lt;&quot;</span>)
528
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
529
+ <span class="ruby-identifier">e</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;&gt;&quot;</span>,<span class="ruby-identifier">s</span>)
530
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
531
+ <span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>].<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[^&lt;&gt;\s]+/</span>)[<span class="ruby-value">0</span>]
532
+ <span class="ruby-keyword kw">end</span>
533
+
534
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nth_tailer</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">n</span>)
535
+ <span class="ruby-identifier">nth</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">n</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-keyword kw">end</span>
536
+ <span class="ruby-keyword kw">end</span>
537
+
538
+ <span class="ruby-keyword kw">end</span>
539
+
540
+
541
+ ??
542
+
543
+ </pre>
544
+ </div>
545
+ </div>
546
+ </div>
547
+
548
+ <div id="method-M000372" class="method-detail">
549
+ <a name="M000372"></a>
550
+
551
+ <div class="method-heading">
552
+ <a href="#M000372" class="method-signature">
553
+ <span class="method-name">for_this</span><span class="method-args">() {|self| ...}</span>
554
+ </a>
555
+ </div>
556
+
557
+ <div class="method-description">
558
+ <p><a class="source-toggle" href="#"
559
+ onclick="toggleCode('M000372-source');return false;">[Source]</a></p>
560
+ <div class="method-source-code" id="M000372-source">
561
+ <pre>
562
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 249</span>
563
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">for_this</span>
564
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
565
+ <span class="ruby-keyword kw">end</span>
566
+ </pre>
567
+ </div>
568
+ </div>
569
+ </div>
570
+
571
+ <div id="method-M000374" class="method-detail">
572
+ <a name="M000374"></a>
573
+
574
+ <div class="method-heading">
575
+ <a href="#M000374" class="method-signature">
576
+ <span class="method-name">get_first</span><span class="method-args">(*arg)</span>
577
+ </a>
578
+ </div>
579
+
580
+ <div class="method-description">
581
+ <p><a class="source-toggle" href="#"
582
+ onclick="toggleCode('M000374-source');return false;">[Source]</a></p>
583
+ <div class="method-source-code" id="M000374-source">
584
+ <pre>
585
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 254</span>
586
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_first</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-identifier">r</span>=<span class="ruby-keyword kw">nil</span>; <span class="ruby-identifier">first</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bl</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>=<span class="ruby-identifier">bl</span> <span class="ruby-keyword kw">end</span>; <span class="ruby-identifier">r</span>; <span class="ruby-keyword kw">end</span>
587
+ </pre>
588
+ </div>
589
+ </div>
590
+ </div>
591
+
592
+ <div id="method-M000373" class="method-detail">
593
+ <a name="M000373"></a>
594
+
595
+ <div class="method-heading">
596
+ <a href="#M000373" class="method-signature">
597
+ <span class="method-name">get_nth</span><span class="method-args">(*arg)</span>
598
+ </a>
599
+ </div>
600
+
601
+ <div class="method-description">
602
+ <p><a class="source-toggle" href="#"
603
+ onclick="toggleCode('M000373-source');return false;">[Source]</a></p>
604
+ <div class="method-source-code" id="M000373-source">
605
+ <pre>
606
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 253</span>
607
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_nth</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-identifier">r</span>=<span class="ruby-keyword kw">nil</span>; <span class="ruby-identifier">nth</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bl</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>=<span class="ruby-identifier">bl</span> <span class="ruby-keyword kw">end</span>; <span class="ruby-identifier">r</span>; <span class="ruby-keyword kw">end</span>
608
+ </pre>
609
+ </div>
610
+ </div>
611
+ </div>
612
+
613
+ <div id="method-M000367" class="method-detail">
614
+ <a name="M000367"></a>
615
+
616
+ <div class="method-heading">
617
+ <span class="method-name">next</span><span class="method-args">(tag,*arg)</span>
618
+ </div>
619
+
620
+ <div class="method-description">
621
+ <p>
622
+ Alias for <a href="TextTagIterator.html#M000366">first</a>
623
+ </p>
624
+ </div>
625
+ </div>
626
+
627
+ <div id="method-M000365" class="method-detail">
628
+ <a name="M000365"></a>
629
+
630
+ <div class="method-heading">
631
+ <a href="#M000365" class="method-signature">
632
+ <span class="method-name">nth</span><span class="method-args">(tag,n,closetag=nil) {|self.class.new(text[s..e],tag,parse_attribute(d))| ...}</span>
633
+ </a>
634
+ </div>
635
+
636
+ <div class="method-description">
637
+ <p><a class="source-toggle" href="#"
638
+ onclick="toggleCode('M000365-source');return false;">[Source]</a></p>
639
+ <div class="method-source-code" id="M000365-source">
640
+ <pre>
641
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 177</span>
642
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nth</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">n</span>,<span class="ruby-identifier">closetag</span>=<span class="ruby-keyword kw">nil</span>)
643
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>,<span class="ruby-value str">&quot;nth: number not specified&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">n</span>
644
+ <span class="ruby-identifier">t</span>=<span class="ruby-value">0</span>
645
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">s</span>=<span class="ruby-value">0</span> <span class="ruby-comment cmt"># for their scope</span>
646
+ <span class="ruby-identifier">d</span>=<span class="ruby-keyword kw">nil</span>
647
+
648
+ <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">n</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
649
+ <span class="ruby-identifier">s</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">t</span>)
650
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>,<span class="ruby-node">&quot;tag(#{tag}) not found at(#{i})&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
651
+
652
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">closetag</span> <span class="ruby-keyword kw">then</span>
653
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">closetag</span>,<span class="ruby-identifier">s</span>,<span class="ruby-identifier">tag</span>)
654
+ <span class="ruby-keyword kw">else</span>
655
+ <span class="ruby-identifier">e</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">s</span>)
656
+ <span class="ruby-keyword kw">end</span>
657
+ <span class="ruby-identifier">e</span>=<span class="ruby-value">-1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">e</span>
658
+ <span class="ruby-identifier">t</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'&gt;'</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
659
+ <span class="ruby-identifier">t</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
660
+ <span class="ruby-keyword kw">end</span>
661
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>],<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">parse_attribute</span>(<span class="ruby-identifier">d</span>))
662
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>[<span class="ruby-identifier">t</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>])
663
+ <span class="ruby-keyword kw">end</span>
664
+ </pre>
665
+ </div>
666
+ </div>
667
+ </div>
668
+
669
+ <div id="method-M000377" class="method-detail">
670
+ <a name="M000377"></a>
671
+
672
+ <div class="method-heading">
673
+ <a href="#M000377" class="method-signature">
674
+ <span class="method-name">nth_tailer</span><span class="method-args">(tag,n)</span>
675
+ </a>
676
+ </div>
677
+
678
+ <div class="method-description">
679
+ <p><a class="source-toggle" href="#"
680
+ onclick="toggleCode('M000377-source');return false;">[Source]</a></p>
681
+ <div class="method-source-code" id="M000377-source">
682
+ <pre>
683
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 269</span>
684
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nth_tailer</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">n</span>)
685
+ <span class="ruby-identifier">nth</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">n</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-keyword kw">end</span>
686
+ <span class="ruby-keyword kw">end</span>
687
+ </pre>
688
+ </div>
689
+ </div>
690
+ </div>
691
+
692
+ <div id="method-M000375" class="method-detail">
693
+ <a name="M000375"></a>
694
+
695
+ <div class="method-heading">
696
+ <a href="#M000375" class="method-signature">
697
+ <span class="method-name">tagexist?</span><span class="method-args">(tag,st=0)</span>
698
+ </a>
699
+ </div>
700
+
701
+ <div class="method-description">
702
+ <p><a class="source-toggle" href="#"
703
+ onclick="toggleCode('M000375-source');return false;">[Source]</a></p>
704
+ <div class="method-source-code" id="M000375-source">
705
+ <pre>
706
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 256</span>
707
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tagexist?</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>=<span class="ruby-value">0</span>)
708
+ <span class="ruby-identifier">s</span>=<span class="ruby-identifier">find_element</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>)
709
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">end</span>
710
+ <span class="ruby-keyword kw">end</span>
711
+ </pre>
712
+ </div>
713
+ </div>
714
+ </div>
715
+
716
+ <div id="method-M000376" class="method-detail">
717
+ <a name="M000376"></a>
718
+
719
+ <div class="method-heading">
720
+ <a href="#M000376" class="method-signature">
721
+ <span class="method-name">tagnext</span><span class="method-args">()</span>
722
+ </a>
723
+ </div>
724
+
725
+ <div class="method-description">
726
+ <p><a class="source-toggle" href="#"
727
+ onclick="toggleCode('M000376-source');return false;">[Source]</a></p>
728
+ <div class="method-source-code" id="M000376-source">
729
+ <pre>
730
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 261</span>
731
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tagnext</span>
732
+ <span class="ruby-identifier">s</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;&lt;&quot;</span>)
733
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
734
+ <span class="ruby-identifier">e</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;&gt;&quot;</span>,<span class="ruby-identifier">s</span>)
735
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
736
+ <span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">..</span><span class="ruby-identifier">e</span>].<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[^&lt;&gt;\s]+/</span>)[<span class="ruby-value">0</span>]
737
+ <span class="ruby-keyword kw">end</span>
738
+ </pre>
739
+ </div>
740
+ </div>
741
+ </div>
742
+
743
+ <h3 class="section-bar">Private Instance methods</h3>
744
+
745
+ <div id="method-M000363" class="method-detail">
746
+ <a name="M000363"></a>
747
+
748
+ <div class="method-heading">
749
+ <a href="#M000363" class="method-signature">
750
+ <span class="method-name">find_closeenumtag</span><span class="method-args">(tag,st=0)</span>
751
+ </a>
752
+ </div>
753
+
754
+ <div class="method-description">
755
+ <p><a class="source-toggle" href="#"
756
+ onclick="toggleCode('M000363-source');return false;">[Source]</a></p>
757
+ <div class="method-source-code" id="M000363-source">
758
+ <pre>
759
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 167</span>
760
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_closeenumtag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>=<span class="ruby-value">0</span>)
761
+ <span class="ruby-identifier">rex</span>=<span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'&lt;\s*'</span><span class="ruby-operator">+</span><span class="ruby-identifier">tag</span>,<span class="ruby-ivar">@option</span>)
762
+ <span class="ruby-identifier">s</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">rex</span>,<span class="ruby-identifier">st</span>)
763
+ <span class="ruby-identifier">s</span><span class="ruby-operator">-=</span><span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>
764
+ <span class="ruby-identifier">s</span>
765
+ <span class="ruby-keyword kw">end</span>
766
+ </pre>
767
+ </div>
768
+ </div>
769
+ </div>
770
+
771
+ <div id="method-M000362" class="method-detail">
772
+ <a name="M000362"></a>
773
+
774
+ <div class="method-heading">
775
+ <a href="#M000362" class="method-signature">
776
+ <span class="method-name">find_closetag</span><span class="method-args">(tag,st,opentag=nil)</span>
777
+ </a>
778
+ </div>
779
+
780
+ <div class="method-description">
781
+ <p><a class="source-toggle" href="#"
782
+ onclick="toggleCode('M000362-source');return false;">[Source]</a></p>
783
+ <div class="method-source-code" id="M000362-source">
784
+ <pre>
785
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 151</span>
786
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>,<span class="ruby-identifier">opentag</span>=<span class="ruby-keyword kw">nil</span>)
787
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opentag</span> <span class="ruby-keyword kw">then</span>
788
+ <span class="ruby-identifier">p</span>=<span class="ruby-identifier">find_element</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>)
789
+ <span class="ruby-identifier">q</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">opentag</span>,<span class="ruby-identifier">st</span>)
790
+ <span class="ruby-keyword kw">else</span>
791
+ <span class="ruby-identifier">p</span>=<span class="ruby-identifier">find_element</span>(<span class="ruby-value str">'/\s*'</span><span class="ruby-operator">+</span><span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>)
792
+ <span class="ruby-identifier">q</span>,<span class="ruby-identifier">d</span> = <span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>)
793
+ <span class="ruby-keyword kw">end</span>
794
+ <span class="ruby-identifier">p</span><span class="ruby-operator">-=</span><span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span>
795
+
796
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">q</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">q</span> <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt"># tag nested</span>
797
+ <span class="ruby-identifier">p</span>=<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">find_closetag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">q</span>,<span class="ruby-identifier">opentag</span>)<span class="ruby-operator">+</span><span class="ruby-value">2</span>,<span class="ruby-identifier">opentag</span>)
798
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">end</span>
799
+
800
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">p</span>
801
+ <span class="ruby-keyword kw">end</span>
802
+ </pre>
803
+ </div>
804
+ </div>
805
+ </div>
806
+
807
+ <div id="method-M000359" class="method-detail">
808
+ <a name="M000359"></a>
809
+
810
+ <div class="method-heading">
811
+ <a href="#M000359" class="method-signature">
812
+ <span class="method-name">find_element</span><span class="method-args">(element,st=0)</span>
813
+ </a>
814
+ </div>
815
+
816
+ <div class="method-description">
817
+ <p><a class="source-toggle" href="#"
818
+ onclick="toggleCode('M000359-source');return false;">[Source]</a></p>
819
+ <div class="method-source-code" id="M000359-source">
820
+ <pre>
821
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 131</span>
822
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_element</span><span class="ruby-identifier">find_element</span>(<span class="ruby-identifier">element</span>,<span class="ruby-identifier">st</span>=<span class="ruby-value">0</span>)
823
+ <span class="ruby-identifier">rex</span>=<span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'&lt;(\s|\n)*'</span><span class="ruby-operator">+</span><span class="ruby-identifier">element</span><span class="ruby-operator">+</span><span class="ruby-value str">'(\s|\n|&gt;)'</span>,<span class="ruby-ivar">@option</span>)
824
+ <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">rex</span>,<span class="ruby-identifier">st</span>)
825
+ <span class="ruby-keyword kw">end</span>
826
+ </pre>
827
+ </div>
828
+ </div>
829
+ </div>
830
+
831
+ <div id="method-M000364" class="method-detail">
832
+ <a name="M000364"></a>
833
+
834
+ <div class="method-heading">
835
+ <span class="method-name">find_openenumtag</span><span class="method-args">(tag,st=0)</span>
836
+ </div>
837
+
838
+ <div class="method-description">
839
+ <p>
840
+ Alias for <a href="TextTagIterator.html#M000361">find_opentag</a>
841
+ </p>
842
+ </div>
843
+ </div>
844
+
845
+ <div id="method-M000361" class="method-detail">
846
+ <a name="M000361"></a>
847
+
848
+ <div class="method-heading">
849
+ <a href="#M000361" class="method-signature">
850
+ <span class="method-name">find_opentag</span><span class="method-args">(tag,st=0)</span>
851
+ </a>
852
+ </div>
853
+
854
+ <div class="method-description">
855
+ <p><a class="source-toggle" href="#"
856
+ onclick="toggleCode('M000361-source');return false;">[Source]</a></p>
857
+ <div class="method-source-code" id="M000361-source">
858
+ <pre>
859
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 144</span>
860
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_opentag</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>=<span class="ruby-value">0</span>)
861
+ <span class="ruby-identifier">s</span>=<span class="ruby-identifier">find_element</span>(<span class="ruby-identifier">tag</span>,<span class="ruby-identifier">st</span>)
862
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>
863
+
864
+ <span class="ruby-identifier">r</span>=<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'&gt;'</span>,<span class="ruby-identifier">s</span>)
865
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">r</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>,<span class="ruby-ivar">@text</span>[<span class="ruby-identifier">s</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">r</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>]
866
+ <span class="ruby-keyword kw">end</span>
867
+ </pre>
868
+ </div>
869
+ </div>
870
+ </div>
871
+
872
+ <div id="method-M000360" class="method-detail">
873
+ <a name="M000360"></a>
874
+
875
+ <div class="method-heading">
876
+ <a href="#M000360" class="method-signature">
877
+ <span class="method-name">parse_attribute</span><span class="method-args">(attstr)</span>
878
+ </a>
879
+ </div>
880
+
881
+ <div class="method-description">
882
+ <p><a class="source-toggle" href="#"
883
+ onclick="toggleCode('M000360-source');return false;">[Source]</a></p>
884
+ <div class="method-source-code" id="M000360-source">
885
+ <pre>
886
+ <span class="ruby-comment cmt"># File lib/carat/tagiter.rb, line 136</span>
887
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_attribute</span>(<span class="ruby-identifier">attstr</span>)
888
+ <span class="ruby-identifier">k</span>={}; <span class="ruby-identifier">r</span>={};
889
+ <span class="ruby-identifier">attstr</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/(\w+)=(\S+)/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>[ <span class="ruby-identifier">pt</span>[<span class="ruby-value">0</span>] ] = <span class="ruby-identifier">pt</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">end</span>
890
+ <span class="ruby-identifier">attstr</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/(\w+)=&quot;([^&quot;]*)&quot;/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>[ <span class="ruby-identifier">pt</span>[<span class="ruby-value">0</span>] ] = <span class="ruby-identifier">pt</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">end</span>
891
+ <span class="ruby-identifier">k</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">val</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">downcase</span>]=<span class="ruby-identifier">val</span> <span class="ruby-keyword kw">end</span>
892
+ <span class="ruby-identifier">r</span>
893
+ <span class="ruby-keyword kw">end</span>
894
+ </pre>
895
+ </div>
896
+ </div>
897
+ </div>
898
+
899
+
900
+ </div>
901
+
902
+
903
+ </div>
904
+
905
+
906
+ <div id="validator-badges">
907
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
908
+ </div>
909
+
910
+ </body>
911
+ </html>