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,172 @@
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: Array</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">Array</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/carat/snapshot_rb.html">
59
+ lib/carat/snapshot.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
+
84
+
85
+ </div>
86
+
87
+ <div id="method-list">
88
+ <h3 class="section-bar">Methods</h3>
89
+
90
+ <div class="name-list">
91
+ <a href="#M000144">apply_snapshot</a>&nbsp;&nbsp;
92
+ <a href="#M000143">take_snapshot</a>&nbsp;&nbsp;
93
+ </div>
94
+ </div>
95
+
96
+ </div>
97
+
98
+
99
+ <!-- if includes -->
100
+
101
+ <div id="section">
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ <!-- if method_list -->
111
+ <div id="methods">
112
+ <h3 class="section-bar">Public Instance methods</h3>
113
+
114
+ <div id="method-M000144" class="method-detail">
115
+ <a name="M000144"></a>
116
+
117
+ <div class="method-heading">
118
+ <a href="#M000144" class="method-signature">
119
+ <span class="method-name">apply_snapshot</span><span class="method-args">(snap)</span>
120
+ </a>
121
+ </div>
122
+
123
+ <div class="method-description">
124
+ <p><a class="source-toggle" href="#"
125
+ onclick="toggleCode('M000144-source');return false;">[Source]</a></p>
126
+ <div class="method-source-code" id="M000144-source">
127
+ <pre>
128
+ <span class="ruby-comment cmt"># File lib/carat/snapshot.rb, line 67</span>
129
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">apply_snapshot</span>(<span class="ruby-identifier">snap</span>)
130
+ <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">snap</span>)
131
+ <span class="ruby-keyword kw">end</span>
132
+ </pre>
133
+ </div>
134
+ </div>
135
+ </div>
136
+
137
+ <div id="method-M000143" class="method-detail">
138
+ <a name="M000143"></a>
139
+
140
+ <div class="method-heading">
141
+ <a href="#M000143" class="method-signature">
142
+ <span class="method-name">take_snapshot</span><span class="method-args">()</span>
143
+ </a>
144
+ </div>
145
+
146
+ <div class="method-description">
147
+ <p><a class="source-toggle" href="#"
148
+ onclick="toggleCode('M000143-source');return false;">[Source]</a></p>
149
+ <div class="method-source-code" id="M000143-source">
150
+ <pre>
151
+ <span class="ruby-comment cmt"># File lib/carat/snapshot.rb, line 63</span>
152
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">take_snapshot</span>
153
+ <span class="ruby-identifier">dup</span>
154
+ <span class="ruby-keyword kw">end</span>
155
+ </pre>
156
+ </div>
157
+ </div>
158
+ </div>
159
+
160
+
161
+ </div>
162
+
163
+
164
+ </div>
165
+
166
+
167
+ <div id="validator-badges">
168
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
169
+ </div>
170
+
171
+ </body>
172
+ </html>
@@ -0,0 +1,638 @@
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: BBCode</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">BBCode</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/carat/bbcode_rb.html">
59
+ lib/carat/bbcode.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><a href="BBCode.html">BBCode</a></h1>
85
+ <p>
86
+ This module helps easening the separation of core and frontend with the
87
+ core (or submodules) being still able to say, what colors shall be used in
88
+ it&#8217;s responses. This is achieved by encoding formatting information
89
+ using the <a href="BBCode.html">BBCode</a> tokens. This enables you to
90
+ &quot;pipe&quot; layout information such as colors, style, fonttype, size
91
+ and alignment through the core to the frontend.
92
+ </p>
93
+ <p>
94
+ Additionally it converts markups/codes between ANSI, <a
95
+ href="HTML.html">HTML</a> and <a href="BBCode.html">BBCode</a> almost
96
+ freely ;)
97
+ </p>
98
+ <h2>Example</h2>
99
+ <pre>
100
+ # Converting a string to ANSI and XHTML
101
+
102
+ require 'raspberry/new/bbcode'
103
+
104
+ str = &quot;this is [COLOR=red]red[/COLOR], this is [B]bold[/B]&quot;
105
+ print( BBCode.bbcode_to_ansi(str) )
106
+ print( BBCode.bbcode_to_html(str) )
107
+ </pre>
108
+ <h1>Author</h1>
109
+ <ul>
110
+ <li>Thomas-Ivo Heinen
111
+
112
+ </li>
113
+ </ul>
114
+ <h2>Legal</h2>
115
+ <pre>
116
+ Copyright (c) 2002 Thomas-Ivo Heinen
117
+ </pre>
118
+ <h2>History</h2>
119
+ <pre>
120
+ 02-07-16 Bugfix BBCODE=&gt;ANSI, bbcode_to_html, ansi_to_html,
121
+ html_to_bbcode, html_to_ansi
122
+
123
+ 02-11-11 Comment fixes, more case insensitive matching,
124
+ convert deprecated HTML styles (&lt;b&gt;, &lt;i&gt;), more
125
+ space-tolerant matching, img-tags in html_to_bbcode
126
+ works now, some error-preventing stripping and downcasing.
127
+ </pre>
128
+ <h2>Stamp</h2>
129
+ <pre>
130
+ $Id: bbcode.rb, v2.2 2002/07/16 transami Exp $
131
+ </pre>
132
+
133
+ </div>
134
+
135
+
136
+ </div>
137
+
138
+ <div id="method-list">
139
+ <h3 class="section-bar">Methods</h3>
140
+
141
+ <div class="name-list">
142
+ <a href="#M000304">ansi</a>&nbsp;&nbsp;
143
+ <a href="#M000306">ansi_to_bbcode</a>&nbsp;&nbsp;
144
+ <a href="#M000310">ansi_to_html</a>&nbsp;&nbsp;
145
+ <a href="#M000307">bbcode_to_ansi</a>&nbsp;&nbsp;
146
+ <a href="#M000309">bbcode_to_html</a>&nbsp;&nbsp;
147
+ <a href="#M000311">html_to_ansi</a>&nbsp;&nbsp;
148
+ <a href="#M000308">html_to_bbcode</a>&nbsp;&nbsp;
149
+ <a href="#M000305">strip_bbcode</a>&nbsp;&nbsp;
150
+ </div>
151
+ </div>
152
+
153
+ </div>
154
+
155
+
156
+ <!-- if includes -->
157
+
158
+ <div id="section">
159
+
160
+
161
+ <div id="constants-list">
162
+ <h3 class="section-bar">Constants</h3>
163
+
164
+ <div class="name-list">
165
+ <table summary="Constants">
166
+ <tr class="top-aligned-row context-row">
167
+ <td class="context-item-name">VERSION</td>
168
+ <td>=</td>
169
+ <td class="context-item-value">2.2</td>
170
+ </tr>
171
+ <tr class="top-aligned-row context-row">
172
+ <td class="context-item-name">ANSINAME2CODE</td>
173
+ <td>=</td>
174
+ <td class="context-item-value">{ &quot;reset&quot; =&gt; &quot;\e[0m&quot;, &quot;bold&quot; =&gt; &quot;\e[1m&quot;, &quot;underline&quot; =&gt; &quot;\e[4m&quot;, &quot;blink&quot; =&gt; &quot;\e[5m&quot;, &quot;reverse&quot; =&gt; &quot;\e[7m&quot;, &quot;invisible&quot; =&gt; &quot;\e[8m&quot;, &quot;black&quot; =&gt; &quot;\e[0;30m&quot;, &quot;darkgrey&quot; =&gt; &quot;\e[1;30m&quot;, &quot;red&quot; =&gt; &quot;\e[0;31m&quot;, &quot;lightred&quot; =&gt; &quot;\e[1;31m&quot;, &quot;green&quot; =&gt; &quot;\e[0;32m&quot;, &quot;lightgreen&quot; =&gt; &quot;\e[1;32m&quot;, &quot;brown&quot; =&gt; &quot;\e[0;33m&quot;, &quot;yellow&quot; =&gt; &quot;\e[1;33m&quot;, &quot;blue&quot; =&gt; &quot;\e[0;34m&quot;, &quot;lightblue&quot; =&gt; &quot;\e[1;34m&quot;, &quot;purple&quot; =&gt; &quot;\e[0;35m&quot;, &quot;magenta&quot; =&gt; &quot;\e[1;35m&quot;, &quot;cyan&quot; =&gt; &quot;\e[1;36m&quot;, &quot;lightcyan&quot; =&gt; &quot;\e[1;36m&quot;, &quot;grey&quot; =&gt; &quot;\e[0;37m&quot;, &quot;white&quot; =&gt; &quot;\e[1;37m&quot;, &quot;bgblack&quot; =&gt; &quot;\e[40m&quot;, &quot;bgred&quot; =&gt; &quot;\e[41m&quot;, &quot;bggreen&quot; =&gt; &quot;\e[42m&quot;, &quot;bgyellow&quot; =&gt; &quot;\e[43m&quot;, &quot;bgblue&quot; =&gt; &quot;\e[44m&quot;, &quot;bgmagenta&quot; =&gt; &quot;\e[45m&quot;, &quot;bgcyan&quot; =&gt; &quot;\e[46m&quot;, &quot;bgwhite&quot; =&gt; &quot;\e[47m&quot;</td>
175
+ <td width="3em">&nbsp;</td>
176
+ <td class="context-item-desc">
177
+ ANSIname =&gt; ANSIcode LUT
178
+
179
+ </td>
180
+ </tr>
181
+ <tr class="top-aligned-row context-row">
182
+ <td class="context-item-name">BBCOLOR2ANSI</td>
183
+ <td>=</td>
184
+ <td class="context-item-value">{ &quot;skyblue&quot; =&gt; &quot;blue&quot;, &quot;royalblue&quot; =&gt; &quot;blue&quot;, &quot;blue&quot; =&gt; &quot;blue&quot;, &quot;darkblue&quot; =&gt; &quot;blue&quot;, &quot;orange&quot; =&gt; &quot;red&quot;, &quot;orangered&quot; =&gt; &quot;red&quot;, &quot;crimson&quot; =&gt; &quot;red&quot;, &quot;red&quot; =&gt; &quot;lightred&quot;, &quot;firebrick&quot; =&gt; &quot;red&quot;, &quot;darkred&quot; =&gt; &quot;red&quot;, &quot;green&quot; =&gt; &quot;green&quot;, &quot;limegreen&quot; =&gt; &quot;green&quot;, &quot;seagreen&quot; =&gt; &quot;green&quot;, &quot;darkgreen&quot; =&gt; &quot;green&quot;, &quot;deeppink&quot; =&gt; &quot;magenta&quot;, &quot;tomato&quot; =&gt; &quot;red&quot;, &quot;coral&quot; =&gt; &quot;cyan&quot;, &quot;purple&quot; =&gt; &quot;purple&quot;, &quot;indigo&quot; =&gt; &quot;blue&quot;, &quot;burlywood&quot; =&gt; &quot;red&quot;, &quot;sandybrown&quot;=&gt; &quot;red&quot;, &quot;sierra&quot; =&gt; &quot;sierra&quot;, &quot;chocolate&quot; =&gt; &quot;brown&quot;, &quot;teal&quot; =&gt; &quot;teal&quot;, &quot;silver&quot; =&gt; &quot;white&quot;, &quot;black&quot; =&gt; &quot;black&quot;, &quot;yellow&quot; =&gt; &quot;yellow&quot;, &quot;magenta&quot; =&gt; &quot;magenta&quot;, &quot;cyan&quot; =&gt; &quot;cyan&quot;, &quot;white&quot; =&gt; &quot;white&quot;</td>
185
+ <td width="3em">&nbsp;</td>
186
+ <td class="context-item-desc">
187
+ BBColor =&gt; ANSIname LUT
188
+
189
+ </td>
190
+ </tr>
191
+ <tr class="top-aligned-row context-row">
192
+ <td class="context-item-name">ANSINAME2BBCODE</td>
193
+ <td>=</td>
194
+ <td class="context-item-value">{ &quot;bold&quot; =&gt; &quot;B&quot;, &quot;underline&quot; =&gt; &quot;U&quot;, &quot;reverse&quot; =&gt; &quot;I&quot;, &quot;red&quot; =&gt; &quot;COLOR=red&quot;, &quot;blue&quot; =&gt; &quot;COLOR=blue&quot;, &quot;green&quot; =&gt; &quot;COLOR=green&quot;, &quot;cyan&quot; =&gt; &quot;COLOR=cyan&quot;, &quot;magenta&quot;=&gt; &quot;COLOR=deeppink&quot;, &quot;purple&quot; =&gt; &quot;COLOR=purple&quot;, &quot;black&quot; =&gt; &quot;COLOR=black&quot;, &quot;white&quot; =&gt; &quot;COLOR=white&quot;, &quot;yellow&quot; =&gt; &quot;COLOR=yellow&quot;, &quot;brown&quot; =&gt; &quot;COLOR=chocolate&quot;</td>
195
+ <td width="3em">&nbsp;</td>
196
+ <td class="context-item-desc">
197
+ ANSInames =&gt; <a href="BBCode.html">BBCode</a> LUT
198
+
199
+ </td>
200
+ </tr>
201
+ </table>
202
+ </div>
203
+ </div>
204
+
205
+
206
+
207
+
208
+
209
+
210
+ <!-- if method_list -->
211
+ <div id="methods">
212
+ <h3 class="section-bar">Public Class methods</h3>
213
+
214
+ <div id="method-M000304" class="method-detail">
215
+ <a name="M000304"></a>
216
+
217
+ <div class="method-heading">
218
+ <a href="#M000304" class="method-signature">
219
+ <span class="method-name">ansi</span><span class="method-args">(colorname)</span>
220
+ </a>
221
+ </div>
222
+
223
+ <div class="method-description">
224
+ <p>
225
+ Returns the ANSI sequence for given color, if existant
226
+ </p>
227
+ <p><a class="source-toggle" href="#"
228
+ onclick="toggleCode('M000304-source');return false;">[Source]</a></p>
229
+ <div class="method-source-code" id="M000304-source">
230
+ <pre>
231
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 107</span>
232
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">ansi</span>(<span class="ruby-identifier">colorname</span>)
233
+ <span class="ruby-identifier">colorname</span>.<span class="ruby-identifier">strip!</span>
234
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">ANSINAME2CODE</span>[ <span class="ruby-identifier">colorname</span>.<span class="ruby-identifier">downcase</span> ]
235
+ <span class="ruby-keyword kw">end</span>
236
+ </pre>
237
+ </div>
238
+ </div>
239
+ </div>
240
+
241
+ <div id="method-M000306" class="method-detail">
242
+ <a name="M000306"></a>
243
+
244
+ <div class="method-heading">
245
+ <a href="#M000306" class="method-signature">
246
+ <span class="method-name">ansi_to_bbcode</span><span class="method-args">(string)</span>
247
+ </a>
248
+ </div>
249
+
250
+ <div class="method-description">
251
+ <p>
252
+ Returns the string with all ansi escape sequences converted to BBCodes
253
+ </p>
254
+ <p><a class="source-toggle" href="#"
255
+ onclick="toggleCode('M000306-source');return false;">[Source]</a></p>
256
+ <div class="method-source-code" id="M000306-source">
257
+ <pre>
258
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 120</span>
259
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">ansi_to_bbcode</span>(<span class="ruby-identifier">string</span>)
260
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
261
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">&quot;&quot;</span>
262
+ <span class="ruby-identifier">tagstack</span> = []
263
+
264
+ <span class="ruby-comment cmt">## Iterate over input lines</span>
265
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
266
+ <span class="ruby-identifier">ansi</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\e\[[0-9;]+m/</span>)
267
+ <span class="ruby-identifier">continue</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ansi</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ansi</span>.<span class="ruby-identifier">empty?</span>
268
+
269
+ <span class="ruby-comment cmt">## Iterate over found ansi sequences</span>
270
+ <span class="ruby-identifier">ansi</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">seq</span><span class="ruby-operator">|</span>
271
+ <span class="ruby-identifier">ansiname</span> = <span class="ruby-constant">ANSINAME2CODE</span>.<span class="ruby-identifier">invert</span>[<span class="ruby-node">&quot;#{seq}&quot;</span>]
272
+
273
+ <span class="ruby-comment cmt">## Pop last tag and form closing tag</span>
274
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ansiname</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;reset&quot;</span>
275
+ <span class="ruby-identifier">lasttag</span> = <span class="ruby-identifier">tagstack</span>.<span class="ruby-identifier">pop</span>
276
+ <span class="ruby-identifier">bbname</span> = <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">String</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">lasttag</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;=&quot;</span>)[<span class="ruby-value">0</span>] )
277
+
278
+ <span class="ruby-comment cmt">## Get corresponding BBCode tag + Push to stack</span>
279
+ <span class="ruby-keyword kw">else</span>
280
+ <span class="ruby-identifier">bbname</span> = <span class="ruby-constant">ANSINAME2BBCODE</span>[<span class="ruby-identifier">ansiname</span>]
281
+ <span class="ruby-identifier">tagstack</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">bbname</span>)
282
+ <span class="ruby-keyword kw">end</span>
283
+
284
+ <span class="ruby-comment cmt">## Replace ansi sequence by BBCode tag</span>
285
+ <span class="ruby-identifier">replace</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;[%s]&quot;</span>, <span class="ruby-identifier">bbname</span>)
286
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-node">&quot;#{Regexp.quote(seq)}&quot;</span>, <span class="ruby-identifier">replace</span>)
287
+ <span class="ruby-keyword kw">end</span>
288
+
289
+ <span class="ruby-comment cmt">## Append converted line</span>
290
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%s\n&quot;</span>, <span class="ruby-identifier">line</span>)
291
+ <span class="ruby-keyword kw">end</span>
292
+
293
+
294
+ <span class="ruby-comment cmt">## Some tags are unclosed</span>
295
+ <span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tagstack</span>.<span class="ruby-identifier">empty?</span>
296
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;[/%s]&quot;</span>, <span class="ruby-constant">String</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tagstack</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;=&quot;</span>)[<span class="ruby-value">0</span>]) )
297
+ <span class="ruby-keyword kw">end</span>
298
+
299
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
300
+ <span class="ruby-keyword kw">end</span>
301
+ </pre>
302
+ </div>
303
+ </div>
304
+ </div>
305
+
306
+ <div id="method-M000310" class="method-detail">
307
+ <a name="M000310"></a>
308
+
309
+ <div class="method-heading">
310
+ <a href="#M000310" class="method-signature">
311
+ <span class="method-name">ansi_to_html</span><span class="method-args">(string)</span>
312
+ </a>
313
+ </div>
314
+
315
+ <div class="method-description">
316
+ <p>
317
+ Converts a ANSI string to one with <a href="HTML.html">HTML</a> markup.
318
+ Returns the string with ANSI code sequences converted to XHTML markup.
319
+ </p>
320
+ <p><a class="source-toggle" href="#"
321
+ onclick="toggleCode('M000310-source');return false;">[Source]</a></p>
322
+ <div class="method-source-code" id="M000310-source">
323
+ <pre>
324
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 338</span>
325
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">ansi_to_html</span>(<span class="ruby-identifier">string</span>)
326
+ <span class="ruby-identifier">bbcoded</span> = <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">ansi_to_bbcode</span>(<span class="ruby-identifier">string</span> )
327
+ <span class="ruby-identifier">htmled</span> = <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">bbcode_to_html</span>(<span class="ruby-identifier">bbcoded</span>)
328
+
329
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">htmled</span>
330
+ <span class="ruby-keyword kw">end</span>
331
+ </pre>
332
+ </div>
333
+ </div>
334
+ </div>
335
+
336
+ <div id="method-M000307" class="method-detail">
337
+ <a name="M000307"></a>
338
+
339
+ <div class="method-heading">
340
+ <a href="#M000307" class="method-signature">
341
+ <span class="method-name">bbcode_to_ansi</span><span class="method-args">(string, usecolors = true)</span>
342
+ </a>
343
+ </div>
344
+
345
+ <div class="method-description">
346
+ <p>
347
+ Converts a <a href="BBCode.html">BBCode</a> string to one with ANSI
348
+ sequences. Returns the string with all formatting instructions in BBCodes
349
+ converted to ANSI code sequences / aligned with spaces to specified width.
350
+ </p>
351
+ <p><a class="source-toggle" href="#"
352
+ onclick="toggleCode('M000307-source');return false;">[Source]</a></p>
353
+ <div class="method-source-code" id="M000307-source">
354
+ <pre>
355
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 166</span>
356
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">bbcode_to_ansi</span>(<span class="ruby-identifier">string</span>, <span class="ruby-identifier">usecolors</span> = <span class="ruby-keyword kw">true</span>)
357
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
358
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">&quot;&quot;</span>
359
+
360
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">strip_bbcode</span>(<span class="ruby-identifier">string</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">usecolors</span>
361
+
362
+ <span class="ruby-comment cmt">## Iterate over lines</span>
363
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
364
+
365
+ <span class="ruby-comment cmt">## TODO: stacking? other styles!</span>
366
+ <span class="ruby-constant">ANSINAME2BBCODE</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>
367
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\[#{val}\]/</span>, <span class="ruby-constant">ANSINAME2CODE</span>[<span class="ruby-identifier">key</span>])
368
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\[\/#{val}\]/</span>, <span class="ruby-constant">ANSINAME2CODE</span>[<span class="ruby-value str">&quot;reset&quot;</span>])
369
+ <span class="ruby-keyword kw">end</span>
370
+
371
+ <span class="ruby-comment cmt">## Fonttypes and sizes not available</span>
372
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[SIZE=\d\]/</span>, <span class="ruby-value str">&quot;&quot;</span>)
373
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/SIZE\]/</span>, <span class="ruby-value str">&quot;&quot;</span>)
374
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[FONT=[^\]]*\]/</span>, <span class="ruby-value str">&quot;&quot;</span>)
375
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/FONT\]/</span>, <span class="ruby-value str">&quot;&quot;</span>)
376
+
377
+ <span class="ruby-comment cmt">## Color-mapping</span>
378
+ <span class="ruby-identifier">colors</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\[COLOR=(.*?)\]/i</span>)
379
+ <span class="ruby-identifier">colors</span> = <span class="ruby-identifier">colors</span>.<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_s</span>} <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">colors</span>.<span class="ruby-identifier">nil?</span>
380
+ <span class="ruby-identifier">colors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">col</span><span class="ruby-operator">|</span>
381
+ <span class="ruby-identifier">name</span> = <span class="ruby-constant">BBCOLOR2ANSI</span>[<span class="ruby-identifier">col</span>.<span class="ruby-identifier">downcase</span>]
382
+ <span class="ruby-identifier">name</span> = <span class="ruby-constant">BBCOLOR2ANSI</span>[<span class="ruby-value str">&quot;white&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
383
+ <span class="ruby-identifier">code</span> = <span class="ruby-constant">ANSINAME2CODE</span>[<span class="ruby-identifier">name</span>]
384
+
385
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\[COLOR=#{col}\]/i</span>, <span class="ruby-identifier">code</span>)
386
+ <span class="ruby-keyword kw">end</span>
387
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/COLOR\]/</span>, <span class="ruby-constant">ANSINAME2CODE</span>[<span class="ruby-value str">&quot;reset&quot;</span>])
388
+
389
+ <span class="ruby-comment cmt">## TODO: Alignment</span>
390
+ <span class="ruby-comment cmt">## TODO: IMGs</span>
391
+ <span class="ruby-comment cmt">## TODO: EMAILs</span>
392
+ <span class="ruby-comment cmt">## TODO: URLs</span>
393
+ <span class="ruby-comment cmt">## TODO: QUOTEs</span>
394
+ <span class="ruby-comment cmt">## TODO: LISTs</span>
395
+
396
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%s\n&quot;</span>, <span class="ruby-identifier">line</span>)
397
+ <span class="ruby-keyword kw">end</span>
398
+
399
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
400
+ <span class="ruby-keyword kw">end</span>
401
+ </pre>
402
+ </div>
403
+ </div>
404
+ </div>
405
+
406
+ <div id="method-M000309" class="method-detail">
407
+ <a name="M000309"></a>
408
+
409
+ <div class="method-heading">
410
+ <a href="#M000309" class="method-signature">
411
+ <span class="method-name">bbcode_to_html</span><span class="method-args">(string)</span>
412
+ </a>
413
+ </div>
414
+
415
+ <div class="method-description">
416
+ <p>
417
+ Converts a <a href="BBCode.html">BBCode</a> string to one with <a
418
+ href="HTML.html">HTML</a> markup. Returns the string with all formatting
419
+ instructions in BBCodes converted to XHTML markups.
420
+ </p>
421
+ <p><a class="source-toggle" href="#"
422
+ onclick="toggleCode('M000309-source');return false;">[Source]</a></p>
423
+ <div class="method-source-code" id="M000309-source">
424
+ <pre>
425
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 273</span>
426
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">bbcode_to_html</span>(<span class="ruby-identifier">string</span>)
427
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
428
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">&quot;&quot;</span>
429
+ <span class="ruby-identifier">quote</span> = <span class="ruby-value">0</span>
430
+
431
+ <span class="ruby-comment cmt">## Iterate over lines</span>
432
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
433
+ <span class="ruby-identifier">styles</span> = { <span class="ruby-value str">&quot;b&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;strong&quot;</span>, <span class="ruby-value str">&quot;i&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;em&quot;</span>, <span class="ruby-value str">&quot;u&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;u&quot;</span> }
434
+
435
+ <span class="ruby-comment cmt">## preserve B, I, U</span>
436
+ <span class="ruby-identifier">styles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">code</span>,<span class="ruby-identifier">html</span><span class="ruby-operator">|</span>
437
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\[#{code}\]/i</span>, <span class="ruby-node">&quot;&lt;#{html}&gt;&quot;</span>)
438
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\[\/#{code}\]/i</span>, <span class="ruby-node">&quot;&lt;/#{html}&gt;&quot;</span>)
439
+ <span class="ruby-keyword kw">end</span>
440
+
441
+ <span class="ruby-comment cmt">## COLOR =&gt; font color=... (TODO: should be numeric!)</span>
442
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[COLOR=(.*?)\]/i</span>, <span class="ruby-value str">&quot;&lt;font color=\&quot;\\1\&quot;&gt;&quot;</span>)
443
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/COLOR\]/i</span>, <span class="ruby-value str">&quot;&lt;/font&gt;&quot;</span>)
444
+
445
+ <span class="ruby-comment cmt">## SIZE =&gt; font size=...</span>
446
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[SIZE=(.*?)\]/i</span>, <span class="ruby-value str">&quot;&lt;font size=\&quot;\\1\&quot;&gt;&quot;</span>)
447
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/SIZE\]/i</span>, <span class="ruby-value str">&quot;&lt;/font&gt;&quot;</span>)
448
+
449
+ <span class="ruby-comment cmt">## URL </span>
450
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[URL\]([^\[]+?)\[\/URL\]/i</span>, <span class="ruby-value str">&quot;&lt;a href=\&quot;\\1\&quot;&gt;\\1&lt;/a&gt;&quot;</span>)
451
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[URL=(.*?)\](.+?)\[\/URL\]/i</span>, <span class="ruby-value str">&quot;&lt;a href=\&quot;\\1\&quot;&gt;\\2&lt;/a&gt;&quot;</span>)
452
+
453
+ <span class="ruby-comment cmt">## IMG</span>
454
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[IMG=(.*?)\]/i</span>, <span class="ruby-value str">&quot;&lt;img src=\&quot;\\1\&quot; /&gt;&quot;</span>)
455
+
456
+ <span class="ruby-comment cmt">## ALIGN=center (TODO: right, left)</span>
457
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[ALIGN=center\]/i</span>, <span class="ruby-value str">&quot;&lt;center&gt;&quot;</span>)
458
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[ALIGN=right\]/i</span>, <span class="ruby-value str">&quot;&lt;center&gt;&quot;</span>)
459
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[ALIGN=left\]/i</span>, <span class="ruby-value str">&quot;&lt;center&gt;&quot;</span>)
460
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/ALIGN\]/i</span>, <span class="ruby-value str">&quot;&lt;/center&gt;&quot;</span>)
461
+
462
+ <span class="ruby-comment cmt">## QUOTE</span>
463
+ <span class="ruby-identifier">quote</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\[QUOTE\]/i</span>
464
+ <span class="ruby-identifier">quote</span><span class="ruby-operator">-=</span><span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\[\/QUOTE\]/i</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">quote</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">-1</span>)
465
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[QUOTE\]/i</span>, <span class="ruby-value str">&quot;&lt;pre&gt;\n&quot;</span>)
466
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/QUOTE\]/i</span>, <span class="ruby-value str">&quot;&lt;/pre&gt;\n&quot;</span>)
467
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^/</span>, <span class="ruby-value str">&quot;&amp;#62;&quot;</span><span class="ruby-operator">*</span><span class="ruby-identifier">quote</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">quote</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
468
+
469
+ <span class="ruby-comment cmt">## EMAIL</span>
470
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[EMAIL\](.*?)\[\/EMAIL\]/i</span>, <span class="ruby-value str">&quot;&lt;a href=\&quot;mailto:\\1\&quot;&gt;\\1&lt;/a&gt;&quot;</span>)
471
+
472
+ <span class="ruby-comment cmt">## LIST (TODO: LIST=1, LIST=A)</span>
473
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[LIST(?:=(.*?))?\]/i</span>, <span class="ruby-value str">&quot;\n&lt;ul&gt;\n&quot;</span>)
474
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\/LIST\]/i</span>, <span class="ruby-value str">&quot;\n&lt;/ul&gt;\n&quot;</span>)
475
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\[\*\]/i</span>, <span class="ruby-value str">&quot;\n&lt;li /&gt;&quot;</span>)
476
+
477
+ <span class="ruby-comment cmt">## FONT =&gt; font ??????</span>
478
+ <span class="ruby-comment cmt">## ?BLUR?, FADE?</span>
479
+
480
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%s&lt;br /&gt;\n&quot;</span>, <span class="ruby-identifier">line</span>)
481
+ <span class="ruby-keyword kw">end</span>
482
+
483
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
484
+ <span class="ruby-keyword kw">end</span>
485
+ </pre>
486
+ </div>
487
+ </div>
488
+ </div>
489
+
490
+ <div id="method-M000311" class="method-detail">
491
+ <a name="M000311"></a>
492
+
493
+ <div class="method-heading">
494
+ <a href="#M000311" class="method-signature">
495
+ <span class="method-name">html_to_ansi</span><span class="method-args">(string)</span>
496
+ </a>
497
+ </div>
498
+
499
+ <div class="method-description">
500
+ <p>
501
+ Returns the (X)<a href="HTML.html">HTML</a> markup code as ANSI sequences
502
+ </p>
503
+ <p><a class="source-toggle" href="#"
504
+ onclick="toggleCode('M000311-source');return false;">[Source]</a></p>
505
+ <div class="method-source-code" id="M000311-source">
506
+ <pre>
507
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 346</span>
508
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">html_to_ansi</span>(<span class="ruby-identifier">string</span>)
509
+ <span class="ruby-identifier">bbcoded</span> = <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">html_to_bbcode</span>(<span class="ruby-identifier">string</span> )
510
+ <span class="ruby-identifier">ansied</span> = <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">bbcode_to_ansi</span>(<span class="ruby-identifier">bbcoded</span>)
511
+
512
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ansied</span>
513
+ <span class="ruby-keyword kw">end</span>
514
+ </pre>
515
+ </div>
516
+ </div>
517
+ </div>
518
+
519
+ <div id="method-M000308" class="method-detail">
520
+ <a name="M000308"></a>
521
+
522
+ <div class="method-heading">
523
+ <a href="#M000308" class="method-signature">
524
+ <span class="method-name">html_to_bbcode</span><span class="method-args">(string)</span>
525
+ </a>
526
+ </div>
527
+
528
+ <div class="method-description">
529
+ <p>
530
+ Converts a <a href="HTML.html">HTML</a> string into one with <a
531
+ href="BBCode.html">BBCode</a> markup (TODO) Returns the (X)<a
532
+ href="HTML.html">HTML</a> markup string as <a href="BBCode.html">BBCode</a>
533
+ </p>
534
+ <p><a class="source-toggle" href="#"
535
+ onclick="toggleCode('M000308-source');return false;">[Source]</a></p>
536
+ <div class="method-source-code" id="M000308-source">
537
+ <pre>
538
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 215</span>
539
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">html_to_bbcode</span>(<span class="ruby-identifier">string</span>)
540
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
541
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">&quot;&quot;</span>
542
+
543
+ <span class="ruby-comment cmt">## Iterate over lines</span>
544
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/&lt;br *\/?&gt;/i</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
545
+ <span class="ruby-identifier">styles</span> = { <span class="ruby-value str">&quot;strong&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;b&quot;</span>, <span class="ruby-value str">&quot;b&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;b&quot;</span>,
546
+ <span class="ruby-value str">&quot;em&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;i&quot;</span>, <span class="ruby-value str">&quot;i&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;i&quot;</span>,
547
+ <span class="ruby-value str">&quot;u&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;u&quot;</span> }
548
+
549
+ <span class="ruby-comment cmt">## preserve B, I, U</span>
550
+ <span class="ruby-identifier">styles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">html</span>,<span class="ruby-identifier">code</span><span class="ruby-operator">|</span>
551
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/&lt;#{html}&gt;/i</span>, <span class="ruby-node">&quot;[#{code.upcase}]&quot;</span>)
552
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/&lt;\/#{html}&gt;/i</span>, <span class="ruby-node">&quot;[/#{code.upcase}]&quot;</span>)
553
+ <span class="ruby-keyword kw">end</span>
554
+
555
+ <span class="ruby-comment cmt">## TODO: COLORs</span>
556
+ <span class="ruby-comment cmt">## TODO: SIZEs</span>
557
+ <span class="ruby-comment cmt">## TODO: FONTs</span>
558
+
559
+ <span class="ruby-comment cmt">## EMAIL</span>
560
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;a +href *= *\&quot;mailto:(.*?)\&quot;.*?&gt;.*?&lt;\/a&gt;/i</span>, <span class="ruby-value str">&quot;[EMAIL]\\1[/EMAIL]&quot;</span>)
561
+
562
+ <span class="ruby-comment cmt">## URL</span>
563
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;a +href *= *\&quot;((?:https?|ftp):\/\/.*?)\&quot;.*?&gt;(.*?)&lt;\/a&gt;/i</span>, <span class="ruby-value str">&quot;[URL=\\1]\\2[/URL]&quot;</span>)
564
+
565
+ <span class="ruby-comment cmt">## Other refs + closing tags =&gt; throw away</span>
566
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;a +href *= *\&quot;.*?\&quot;.*?&gt;/i</span>, <span class="ruby-value str">&quot;&quot;</span>)
567
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;\/a&gt;/i</span>, <span class="ruby-value str">&quot;&quot;</span>)
568
+
569
+ <span class="ruby-comment cmt">## IMG</span>
570
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;img +src *= *\&quot;(.*?)\&quot;.*?\/?&gt;/i</span>, <span class="ruby-value str">&quot;[IMG=\\1]&quot;</span>)
571
+
572
+ <span class="ruby-comment cmt">## CENTER (right/left??)</span>
573
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;center&gt;/i</span>, <span class="ruby-value str">&quot;[ALIGN=center]&quot;</span>)
574
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;\/center&gt;/i</span>, <span class="ruby-value str">&quot;[/ALIGN]&quot;</span>)
575
+
576
+ <span class="ruby-comment cmt">## QUOTE</span>
577
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;(?:xmp|pre)&gt;/i</span>, <span class="ruby-value str">&quot;[QUOTE]&quot;</span>)
578
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;\/(?:xmp|pre)&gt;/i</span>, <span class="ruby-value str">&quot;[/QUOTE]&quot;</span>)
579
+
580
+ <span class="ruby-comment cmt">## LIST</span>
581
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;ul&gt;/i</span>, <span class="ruby-value str">&quot;\n[LIST]\n&quot;</span>)
582
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;\/ul&gt;/i</span>, <span class="ruby-value str">&quot;\n[/LIST]\n&quot;</span>)
583
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;li *\/?&gt; */i</span>, <span class="ruby-value str">&quot;\n[*] &quot;</span>)
584
+
585
+ <span class="ruby-comment cmt">## Unkown tags =&gt; throw away</span>
586
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;.*? *\/?&gt;/</span>, <span class="ruby-value str">&quot;&quot;</span>)
587
+
588
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%s&lt;br /&gt;\n&quot;</span>, <span class="ruby-identifier">line</span>)
589
+ <span class="ruby-keyword kw">end</span>
590
+
591
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/&lt;br *\/?&gt;/i</span>, <span class="ruby-value str">&quot;\n&quot;</span>)
592
+ <span class="ruby-keyword kw">end</span>
593
+ </pre>
594
+ </div>
595
+ </div>
596
+ </div>
597
+
598
+ <div id="method-M000305" class="method-detail">
599
+ <a name="M000305"></a>
600
+
601
+ <div class="method-heading">
602
+ <a href="#M000305" class="method-signature">
603
+ <span class="method-name">strip_bbcode</span><span class="method-args">(string)</span>
604
+ </a>
605
+ </div>
606
+
607
+ <div class="method-description">
608
+ <p>
609
+ &#8212; <a href="BBCode.html#M000305">strip_bbcode</a>( string ) Will strip
610
+ any <a href="BBCode.html">BBCode</a> tags from the given string.
611
+ </p>
612
+ <p><a class="source-toggle" href="#"
613
+ onclick="toggleCode('M000305-source');return false;">[Source]</a></p>
614
+ <div class="method-source-code" id="M000305-source">
615
+ <pre>
616
+ <span class="ruby-comment cmt"># File lib/carat/bbcode.rb, line 114</span>
617
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BBCode</span>.<span class="ruby-identifier">strip_bbcode</span>(<span class="ruby-identifier">string</span>)
618
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">strip!</span>
619
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\[[A-Za-z0-9\/=]+\]/</span>, <span class="ruby-value str">&quot;&quot;</span>)
620
+ <span class="ruby-keyword kw">end</span>
621
+ </pre>
622
+ </div>
623
+ </div>
624
+ </div>
625
+
626
+
627
+ </div>
628
+
629
+
630
+ </div>
631
+
632
+
633
+ <div id="validator-badges">
634
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
635
+ </div>
636
+
637
+ </body>
638
+ </html>