ruby_on_ruby 0.0.1

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 (493) hide show
  1. data/.gitignore +18 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE +22 -0
  5. data/README.md +66 -0
  6. data/Rakefile +1 -0
  7. data/lib/ruby_on_ruby.rb +5 -0
  8. data/lib/ruby_on_ruby/console.rb +7 -0
  9. data/lib/ruby_on_ruby/context.rb +33 -0
  10. data/lib/ruby_on_ruby/file_loader.rb +31 -0
  11. data/lib/ruby_on_ruby/ruby_stream.rb +27 -0
  12. data/lib/ruby_on_ruby/version.rb +3 -0
  13. data/lib/rubyonruby.rb +1 -0
  14. data/ruby_in_ruby.gemspec +19 -0
  15. data/vendor/javascripts/emscripted-ruby/lib/.document +106 -0
  16. data/vendor/javascripts/emscripted-ruby/lib/English.rb +155 -0
  17. data/vendor/javascripts/emscripted-ruby/lib/Env.rb +18 -0
  18. data/vendor/javascripts/emscripted-ruby/lib/README +96 -0
  19. data/vendor/javascripts/emscripted-ruby/lib/abbrev.rb +103 -0
  20. data/vendor/javascripts/emscripted-ruby/lib/base64.rb +133 -0
  21. data/vendor/javascripts/emscripted-ruby/lib/benchmark.rb +572 -0
  22. data/vendor/javascripts/emscripted-ruby/lib/cgi-lib.rb +272 -0
  23. data/vendor/javascripts/emscripted-ruby/lib/cgi.rb +2308 -0
  24. data/vendor/javascripts/emscripted-ruby/lib/cgi/.document +2 -0
  25. data/vendor/javascripts/emscripted-ruby/lib/cgi/session.rb +498 -0
  26. data/vendor/javascripts/emscripted-ruby/lib/cgi/session/pstore.rb +111 -0
  27. data/vendor/javascripts/emscripted-ruby/lib/complex.rb +663 -0
  28. data/vendor/javascripts/emscripted-ruby/lib/csv.rb +992 -0
  29. data/vendor/javascripts/emscripted-ruby/lib/date.rb +1767 -0
  30. data/vendor/javascripts/emscripted-ruby/lib/date/format.rb +1190 -0
  31. data/vendor/javascripts/emscripted-ruby/lib/date2.rb +5 -0
  32. data/vendor/javascripts/emscripted-ruby/lib/debug.rb +947 -0
  33. data/vendor/javascripts/emscripted-ruby/lib/delegate.rb +337 -0
  34. data/vendor/javascripts/emscripted-ruby/lib/drb.rb +2 -0
  35. data/vendor/javascripts/emscripted-ruby/lib/drb/acl.rb +146 -0
  36. data/vendor/javascripts/emscripted-ruby/lib/drb/drb.rb +1782 -0
  37. data/vendor/javascripts/emscripted-ruby/lib/drb/eq.rb +16 -0
  38. data/vendor/javascripts/emscripted-ruby/lib/drb/extserv.rb +64 -0
  39. data/vendor/javascripts/emscripted-ruby/lib/drb/extservm.rb +89 -0
  40. data/vendor/javascripts/emscripted-ruby/lib/drb/gw.rb +122 -0
  41. data/vendor/javascripts/emscripted-ruby/lib/drb/invokemethod.rb +36 -0
  42. data/vendor/javascripts/emscripted-ruby/lib/drb/observer.rb +22 -0
  43. data/vendor/javascripts/emscripted-ruby/lib/drb/ssl.rb +190 -0
  44. data/vendor/javascripts/emscripted-ruby/lib/drb/timeridconv.rb +91 -0
  45. data/vendor/javascripts/emscripted-ruby/lib/drb/unix.rb +108 -0
  46. data/vendor/javascripts/emscripted-ruby/lib/e2mmap.rb +195 -0
  47. data/vendor/javascripts/emscripted-ruby/lib/erb.rb +880 -0
  48. data/vendor/javascripts/emscripted-ruby/lib/eregex.rb +37 -0
  49. data/vendor/javascripts/emscripted-ruby/lib/fileutils.rb +1591 -0
  50. data/vendor/javascripts/emscripted-ruby/lib/finalize.rb +193 -0
  51. data/vendor/javascripts/emscripted-ruby/lib/find.rb +79 -0
  52. data/vendor/javascripts/emscripted-ruby/lib/forwardable.rb +218 -0
  53. data/vendor/javascripts/emscripted-ruby/lib/ftools.rb +261 -0
  54. data/vendor/javascripts/emscripted-ruby/lib/generator.rb +418 -0
  55. data/vendor/javascripts/emscripted-ruby/lib/getoptlong.rb +621 -0
  56. data/vendor/javascripts/emscripted-ruby/lib/getopts.rb +127 -0
  57. data/vendor/javascripts/emscripted-ruby/lib/gserver.rb +253 -0
  58. data/vendor/javascripts/emscripted-ruby/lib/importenv.rb +33 -0
  59. data/vendor/javascripts/emscripted-ruby/lib/ipaddr.rb +814 -0
  60. data/vendor/javascripts/emscripted-ruby/lib/irb.rb +346 -0
  61. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/chws.rb +33 -0
  62. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/fork.rb +39 -0
  63. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/help.rb +34 -0
  64. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/load.rb +67 -0
  65. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/nop.rb +39 -0
  66. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/pushws.rb +39 -0
  67. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/subirb.rb +43 -0
  68. data/vendor/javascripts/emscripted-ruby/lib/irb/completion.rb +205 -0
  69. data/vendor/javascripts/emscripted-ruby/lib/irb/context.rb +255 -0
  70. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/change-ws.rb +62 -0
  71. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/history.rb +110 -0
  72. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/loader.rb +120 -0
  73. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/math-mode.rb +37 -0
  74. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/multi-irb.rb +241 -0
  75. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/save-history.rb +85 -0
  76. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/tracer.rb +61 -0
  77. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/use-loader.rb +65 -0
  78. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/workspaces.rb +56 -0
  79. data/vendor/javascripts/emscripted-ruby/lib/irb/extend-command.rb +264 -0
  80. data/vendor/javascripts/emscripted-ruby/lib/irb/frame.rb +67 -0
  81. data/vendor/javascripts/emscripted-ruby/lib/irb/help.rb +33 -0
  82. data/vendor/javascripts/emscripted-ruby/lib/irb/init.rb +259 -0
  83. data/vendor/javascripts/emscripted-ruby/lib/irb/input-method.rb +120 -0
  84. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/error.rb +30 -0
  85. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/help-message +35 -0
  86. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/error.rb +27 -0
  87. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/help-message +36 -0
  88. data/vendor/javascripts/emscripted-ruby/lib/irb/locale.rb +184 -0
  89. data/vendor/javascripts/emscripted-ruby/lib/irb/notifier.rb +145 -0
  90. data/vendor/javascripts/emscripted-ruby/lib/irb/output-method.rb +85 -0
  91. data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-lex.rb +1149 -0
  92. data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-token.rb +273 -0
  93. data/vendor/javascripts/emscripted-ruby/lib/irb/slex.rb +285 -0
  94. data/vendor/javascripts/emscripted-ruby/lib/irb/version.rb +16 -0
  95. data/vendor/javascripts/emscripted-ruby/lib/irb/workspace.rb +107 -0
  96. data/vendor/javascripts/emscripted-ruby/lib/irb/ws-for-case-2.rb +15 -0
  97. data/vendor/javascripts/emscripted-ruby/lib/irb/xmp.rb +86 -0
  98. data/vendor/javascripts/emscripted-ruby/lib/jcode.rb +220 -0
  99. data/vendor/javascripts/emscripted-ruby/lib/logger.rb +703 -0
  100. data/vendor/javascripts/emscripted-ruby/lib/mailread.rb +62 -0
  101. data/vendor/javascripts/emscripted-ruby/lib/mathn.rb +308 -0
  102. data/vendor/javascripts/emscripted-ruby/lib/matrix.rb +1278 -0
  103. data/vendor/javascripts/emscripted-ruby/lib/mkmf.rb +1811 -0
  104. data/vendor/javascripts/emscripted-ruby/lib/monitor.rb +352 -0
  105. data/vendor/javascripts/emscripted-ruby/lib/mutex_m.rb +122 -0
  106. data/vendor/javascripts/emscripted-ruby/lib/net/ftp.rb +927 -0
  107. data/vendor/javascripts/emscripted-ruby/lib/net/http.rb +2277 -0
  108. data/vendor/javascripts/emscripted-ruby/lib/net/https.rb +173 -0
  109. data/vendor/javascripts/emscripted-ruby/lib/net/imap.rb +3371 -0
  110. data/vendor/javascripts/emscripted-ruby/lib/net/pop.rb +999 -0
  111. data/vendor/javascripts/emscripted-ruby/lib/net/protocol.rb +392 -0
  112. data/vendor/javascripts/emscripted-ruby/lib/net/smtp.rb +1014 -0
  113. data/vendor/javascripts/emscripted-ruby/lib/net/telnet.rb +756 -0
  114. data/vendor/javascripts/emscripted-ruby/lib/observer.rb +192 -0
  115. data/vendor/javascripts/emscripted-ruby/lib/open-uri.rb +678 -0
  116. data/vendor/javascripts/emscripted-ruby/lib/open3.rb +101 -0
  117. data/vendor/javascripts/emscripted-ruby/lib/optparse.rb +1790 -0
  118. data/vendor/javascripts/emscripted-ruby/lib/optparse/date.rb +17 -0
  119. data/vendor/javascripts/emscripted-ruby/lib/optparse/shellwords.rb +6 -0
  120. data/vendor/javascripts/emscripted-ruby/lib/optparse/time.rb +10 -0
  121. data/vendor/javascripts/emscripted-ruby/lib/optparse/uri.rb +6 -0
  122. data/vendor/javascripts/emscripted-ruby/lib/optparse/version.rb +70 -0
  123. data/vendor/javascripts/emscripted-ruby/lib/ostruct.rb +146 -0
  124. data/vendor/javascripts/emscripted-ruby/lib/parsearg.rb +87 -0
  125. data/vendor/javascripts/emscripted-ruby/lib/parsedate.rb +53 -0
  126. data/vendor/javascripts/emscripted-ruby/lib/pathname.rb +1062 -0
  127. data/vendor/javascripts/emscripted-ruby/lib/ping.rb +64 -0
  128. data/vendor/javascripts/emscripted-ruby/lib/pp.rb +654 -0
  129. data/vendor/javascripts/emscripted-ruby/lib/prettyprint.rb +896 -0
  130. data/vendor/javascripts/emscripted-ruby/lib/profile.rb +6 -0
  131. data/vendor/javascripts/emscripted-ruby/lib/profiler.rb +59 -0
  132. data/vendor/javascripts/emscripted-ruby/lib/pstore.rb +395 -0
  133. data/vendor/javascripts/emscripted-ruby/lib/racc/parser.rb +442 -0
  134. data/vendor/javascripts/emscripted-ruby/lib/rational.rb +564 -0
  135. data/vendor/javascripts/emscripted-ruby/lib/readbytes.rb +41 -0
  136. data/vendor/javascripts/emscripted-ruby/lib/resolv-replace.rb +62 -0
  137. data/vendor/javascripts/emscripted-ruby/lib/resolv.rb +2210 -0
  138. data/vendor/javascripts/emscripted-ruby/lib/rexml/attlistdecl.rb +62 -0
  139. data/vendor/javascripts/emscripted-ruby/lib/rexml/attribute.rb +185 -0
  140. data/vendor/javascripts/emscripted-ruby/lib/rexml/cdata.rb +67 -0
  141. data/vendor/javascripts/emscripted-ruby/lib/rexml/child.rb +96 -0
  142. data/vendor/javascripts/emscripted-ruby/lib/rexml/comment.rb +80 -0
  143. data/vendor/javascripts/emscripted-ruby/lib/rexml/doctype.rb +271 -0
  144. data/vendor/javascripts/emscripted-ruby/lib/rexml/document.rb +208 -0
  145. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/attlistdecl.rb +10 -0
  146. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/dtd.rb +51 -0
  147. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/elementdecl.rb +17 -0
  148. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/entitydecl.rb +56 -0
  149. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/notationdecl.rb +39 -0
  150. data/vendor/javascripts/emscripted-ruby/lib/rexml/element.rb +1227 -0
  151. data/vendor/javascripts/emscripted-ruby/lib/rexml/encoding.rb +71 -0
  152. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/CP-1252.rb +103 -0
  153. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/EUC-JP.rb +35 -0
  154. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ICONV.rb +22 -0
  155. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-1.rb +7 -0
  156. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-15.rb +72 -0
  157. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT-JIS.rb +37 -0
  158. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT_JIS.rb +1 -0
  159. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UNILE.rb +34 -0
  160. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/US-ASCII.rb +30 -0
  161. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-16.rb +35 -0
  162. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-8.rb +18 -0
  163. data/vendor/javascripts/emscripted-ruby/lib/rexml/entity.rb +165 -0
  164. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/default.rb +109 -0
  165. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/pretty.rb +137 -0
  166. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/transitive.rb +56 -0
  167. data/vendor/javascripts/emscripted-ruby/lib/rexml/functions.rb +382 -0
  168. data/vendor/javascripts/emscripted-ruby/lib/rexml/instruction.rb +70 -0
  169. data/vendor/javascripts/emscripted-ruby/lib/rexml/light/node.rb +196 -0
  170. data/vendor/javascripts/emscripted-ruby/lib/rexml/namespace.rb +47 -0
  171. data/vendor/javascripts/emscripted-ruby/lib/rexml/node.rb +75 -0
  172. data/vendor/javascripts/emscripted-ruby/lib/rexml/output.rb +24 -0
  173. data/vendor/javascripts/emscripted-ruby/lib/rexml/parent.rb +166 -0
  174. data/vendor/javascripts/emscripted-ruby/lib/rexml/parseexception.rb +51 -0
  175. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/baseparser.rb +503 -0
  176. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/lightparser.rb +60 -0
  177. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/pullparser.rb +196 -0
  178. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/sax2parser.rb +238 -0
  179. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/streamparser.rb +46 -0
  180. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/treeparser.rb +97 -0
  181. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/ultralightparser.rb +56 -0
  182. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/xpathparser.rb +698 -0
  183. data/vendor/javascripts/emscripted-ruby/lib/rexml/quickpath.rb +266 -0
  184. data/vendor/javascripts/emscripted-ruby/lib/rexml/rexml.rb +32 -0
  185. data/vendor/javascripts/emscripted-ruby/lib/rexml/sax2listener.rb +97 -0
  186. data/vendor/javascripts/emscripted-ruby/lib/rexml/source.rb +251 -0
  187. data/vendor/javascripts/emscripted-ruby/lib/rexml/streamlistener.rb +92 -0
  188. data/vendor/javascripts/emscripted-ruby/lib/rexml/syncenumerator.rb +33 -0
  189. data/vendor/javascripts/emscripted-ruby/lib/rexml/text.rb +344 -0
  190. data/vendor/javascripts/emscripted-ruby/lib/rexml/undefinednamespaceexception.rb +8 -0
  191. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/relaxng.rb +559 -0
  192. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validation.rb +155 -0
  193. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validationexception.rb +9 -0
  194. data/vendor/javascripts/emscripted-ruby/lib/rexml/xmldecl.rb +119 -0
  195. data/vendor/javascripts/emscripted-ruby/lib/rexml/xmltokens.rb +18 -0
  196. data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath.rb +66 -0
  197. data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath_parser.rb +792 -0
  198. data/vendor/javascripts/emscripted-ruby/lib/rinda/rinda.rb +283 -0
  199. data/vendor/javascripts/emscripted-ruby/lib/rinda/ring.rb +271 -0
  200. data/vendor/javascripts/emscripted-ruby/lib/rinda/tuplespace.rb +642 -0
  201. data/vendor/javascripts/emscripted-ruby/lib/rss.rb +19 -0
  202. data/vendor/javascripts/emscripted-ruby/lib/rss/0.9.rb +428 -0
  203. data/vendor/javascripts/emscripted-ruby/lib/rss/1.0.rb +452 -0
  204. data/vendor/javascripts/emscripted-ruby/lib/rss/2.0.rb +111 -0
  205. data/vendor/javascripts/emscripted-ruby/lib/rss/atom.rb +749 -0
  206. data/vendor/javascripts/emscripted-ruby/lib/rss/content.rb +31 -0
  207. data/vendor/javascripts/emscripted-ruby/lib/rss/content/1.0.rb +10 -0
  208. data/vendor/javascripts/emscripted-ruby/lib/rss/content/2.0.rb +12 -0
  209. data/vendor/javascripts/emscripted-ruby/lib/rss/converter.rb +162 -0
  210. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore.rb +161 -0
  211. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/1.0.rb +13 -0
  212. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/2.0.rb +13 -0
  213. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/atom.rb +17 -0
  214. data/vendor/javascripts/emscripted-ruby/lib/rss/image.rb +193 -0
  215. data/vendor/javascripts/emscripted-ruby/lib/rss/itunes.rb +410 -0
  216. data/vendor/javascripts/emscripted-ruby/lib/rss/maker.rb +44 -0
  217. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/0.9.rb +467 -0
  218. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/1.0.rb +434 -0
  219. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/2.0.rb +223 -0
  220. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/atom.rb +172 -0
  221. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/base.rb +868 -0
  222. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/content.rb +21 -0
  223. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/dublincore.rb +124 -0
  224. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/entry.rb +163 -0
  225. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/feed.rb +429 -0
  226. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/image.rb +111 -0
  227. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/itunes.rb +242 -0
  228. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/slash.rb +33 -0
  229. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/syndication.rb +18 -0
  230. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/taxonomy.rb +118 -0
  231. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/trackback.rb +61 -0
  232. data/vendor/javascripts/emscripted-ruby/lib/rss/parser.rb +541 -0
  233. data/vendor/javascripts/emscripted-ruby/lib/rss/rexmlparser.rb +54 -0
  234. data/vendor/javascripts/emscripted-ruby/lib/rss/rss.rb +1312 -0
  235. data/vendor/javascripts/emscripted-ruby/lib/rss/slash.rb +49 -0
  236. data/vendor/javascripts/emscripted-ruby/lib/rss/syndication.rb +67 -0
  237. data/vendor/javascripts/emscripted-ruby/lib/rss/taxonomy.rb +145 -0
  238. data/vendor/javascripts/emscripted-ruby/lib/rss/trackback.rb +288 -0
  239. data/vendor/javascripts/emscripted-ruby/lib/rss/utils.rb +111 -0
  240. data/vendor/javascripts/emscripted-ruby/lib/rss/xml-stylesheet.rb +105 -0
  241. data/vendor/javascripts/emscripted-ruby/lib/rss/xml.rb +71 -0
  242. data/vendor/javascripts/emscripted-ruby/lib/rss/xmlparser.rb +93 -0
  243. data/vendor/javascripts/emscripted-ruby/lib/rss/xmlscanner.rb +121 -0
  244. data/vendor/javascripts/emscripted-ruby/lib/rubyunit.rb +6 -0
  245. data/vendor/javascripts/emscripted-ruby/lib/runit/assert.rb +73 -0
  246. data/vendor/javascripts/emscripted-ruby/lib/runit/cui/testrunner.rb +51 -0
  247. data/vendor/javascripts/emscripted-ruby/lib/runit/error.rb +9 -0
  248. data/vendor/javascripts/emscripted-ruby/lib/runit/testcase.rb +45 -0
  249. data/vendor/javascripts/emscripted-ruby/lib/runit/testresult.rb +44 -0
  250. data/vendor/javascripts/emscripted-ruby/lib/runit/testsuite.rb +26 -0
  251. data/vendor/javascripts/emscripted-ruby/lib/runit/topublic.rb +8 -0
  252. data/vendor/javascripts/emscripted-ruby/lib/scanf.rb +702 -0
  253. data/vendor/javascripts/emscripted-ruby/lib/securerandom.rb +137 -0
  254. data/vendor/javascripts/emscripted-ruby/lib/set.rb +1233 -0
  255. data/vendor/javascripts/emscripted-ruby/lib/shell.rb +269 -0
  256. data/vendor/javascripts/emscripted-ruby/lib/shell/builtin-command.rb +154 -0
  257. data/vendor/javascripts/emscripted-ruby/lib/shell/command-processor.rb +592 -0
  258. data/vendor/javascripts/emscripted-ruby/lib/shell/error.rb +26 -0
  259. data/vendor/javascripts/emscripted-ruby/lib/shell/filter.rb +110 -0
  260. data/vendor/javascripts/emscripted-ruby/lib/shell/process-controller.rb +260 -0
  261. data/vendor/javascripts/emscripted-ruby/lib/shell/system-command.rb +168 -0
  262. data/vendor/javascripts/emscripted-ruby/lib/shell/version.rb +16 -0
  263. data/vendor/javascripts/emscripted-ruby/lib/shellwords.rb +172 -0
  264. data/vendor/javascripts/emscripted-ruby/lib/singleton.rb +360 -0
  265. data/vendor/javascripts/emscripted-ruby/lib/soap/attachment.rb +107 -0
  266. data/vendor/javascripts/emscripted-ruby/lib/soap/baseData.rb +942 -0
  267. data/vendor/javascripts/emscripted-ruby/lib/soap/element.rb +258 -0
  268. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/aspDotNetHandler.rb +213 -0
  269. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/handler.rb +100 -0
  270. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/literalHandler.rb +226 -0
  271. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/soapHandler.rb +582 -0
  272. data/vendor/javascripts/emscripted-ruby/lib/soap/generator.rb +268 -0
  273. data/vendor/javascripts/emscripted-ruby/lib/soap/header/handler.rb +57 -0
  274. data/vendor/javascripts/emscripted-ruby/lib/soap/header/handlerset.rb +70 -0
  275. data/vendor/javascripts/emscripted-ruby/lib/soap/header/simplehandler.rb +44 -0
  276. data/vendor/javascripts/emscripted-ruby/lib/soap/httpconfigloader.rb +119 -0
  277. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping.rb +10 -0
  278. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/factory.rb +355 -0
  279. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/mapping.rb +381 -0
  280. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/registry.rb +541 -0
  281. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/rubytypeFactory.rb +475 -0
  282. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/typeMap.rb +50 -0
  283. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlencodedregistry.rb +280 -0
  284. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlliteralregistry.rb +418 -0
  285. data/vendor/javascripts/emscripted-ruby/lib/soap/marshal.rb +59 -0
  286. data/vendor/javascripts/emscripted-ruby/lib/soap/mimemessage.rb +240 -0
  287. data/vendor/javascripts/emscripted-ruby/lib/soap/netHttpClient.rb +190 -0
  288. data/vendor/javascripts/emscripted-ruby/lib/soap/parser.rb +251 -0
  289. data/vendor/javascripts/emscripted-ruby/lib/soap/processor.rb +66 -0
  290. data/vendor/javascripts/emscripted-ruby/lib/soap/property.rb +333 -0
  291. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/cgistub.rb +206 -0
  292. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/driver.rb +254 -0
  293. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/element.rb +325 -0
  294. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/httpserver.rb +129 -0
  295. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/proxy.rb +497 -0
  296. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/router.rb +594 -0
  297. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/rpc.rb +25 -0
  298. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/soaplet.rb +162 -0
  299. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/standaloneServer.rb +43 -0
  300. data/vendor/javascripts/emscripted-ruby/lib/soap/soap.rb +140 -0
  301. data/vendor/javascripts/emscripted-ruby/lib/soap/streamHandler.rb +229 -0
  302. data/vendor/javascripts/emscripted-ruby/lib/soap/wsdlDriver.rb +575 -0
  303. data/vendor/javascripts/emscripted-ruby/lib/sync.rb +311 -0
  304. data/vendor/javascripts/emscripted-ruby/lib/tempfile.rb +209 -0
  305. data/vendor/javascripts/emscripted-ruby/lib/test/unit.rb +280 -0
  306. data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertionfailederror.rb +14 -0
  307. data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertions.rb +622 -0
  308. data/vendor/javascripts/emscripted-ruby/lib/test/unit/autorunner.rb +220 -0
  309. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector.rb +43 -0
  310. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/dir.rb +107 -0
  311. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/objectspace.rb +34 -0
  312. data/vendor/javascripts/emscripted-ruby/lib/test/unit/error.rb +56 -0
  313. data/vendor/javascripts/emscripted-ruby/lib/test/unit/failure.rb +51 -0
  314. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testcase.rb +160 -0
  315. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testresult.rb +80 -0
  316. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testsuite.rb +76 -0
  317. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/console/testrunner.rb +127 -0
  318. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/fox/testrunner.rb +268 -0
  319. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk/testrunner.rb +416 -0
  320. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk2/testrunner.rb +465 -0
  321. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnermediator.rb +68 -0
  322. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnerutilities.rb +46 -0
  323. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/tk/testrunner.rb +260 -0
  324. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/backtracefilter.rb +40 -0
  325. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/observable.rb +90 -0
  326. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/procwrapper.rb +48 -0
  327. data/vendor/javascripts/emscripted-ruby/lib/thread.rb +479 -0
  328. data/vendor/javascripts/emscripted-ruby/lib/thwait.rb +169 -0
  329. data/vendor/javascripts/emscripted-ruby/lib/time.rb +797 -0
  330. data/vendor/javascripts/emscripted-ruby/lib/timeout.rb +122 -0
  331. data/vendor/javascripts/emscripted-ruby/lib/tmpdir.rb +130 -0
  332. data/vendor/javascripts/emscripted-ruby/lib/tracer.rb +167 -0
  333. data/vendor/javascripts/emscripted-ruby/lib/tsort.rb +290 -0
  334. data/vendor/javascripts/emscripted-ruby/lib/un.rb +235 -0
  335. data/vendor/javascripts/emscripted-ruby/lib/uri.rb +29 -0
  336. data/vendor/javascripts/emscripted-ruby/lib/uri/common.rb +611 -0
  337. data/vendor/javascripts/emscripted-ruby/lib/uri/ftp.rb +198 -0
  338. data/vendor/javascripts/emscripted-ruby/lib/uri/generic.rb +1122 -0
  339. data/vendor/javascripts/emscripted-ruby/lib/uri/http.rb +100 -0
  340. data/vendor/javascripts/emscripted-ruby/lib/uri/https.rb +20 -0
  341. data/vendor/javascripts/emscripted-ruby/lib/uri/ldap.rb +190 -0
  342. data/vendor/javascripts/emscripted-ruby/lib/uri/ldaps.rb +12 -0
  343. data/vendor/javascripts/emscripted-ruby/lib/uri/mailto.rb +266 -0
  344. data/vendor/javascripts/emscripted-ruby/lib/weakref.rb +100 -0
  345. data/vendor/javascripts/emscripted-ruby/lib/webrick.rb +29 -0
  346. data/vendor/javascripts/emscripted-ruby/lib/webrick/accesslog.rb +67 -0
  347. data/vendor/javascripts/emscripted-ruby/lib/webrick/cgi.rb +257 -0
  348. data/vendor/javascripts/emscripted-ruby/lib/webrick/compat.rb +15 -0
  349. data/vendor/javascripts/emscripted-ruby/lib/webrick/config.rb +97 -0
  350. data/vendor/javascripts/emscripted-ruby/lib/webrick/cookie.rb +110 -0
  351. data/vendor/javascripts/emscripted-ruby/lib/webrick/htmlutils.rb +25 -0
  352. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth.rb +45 -0
  353. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/authenticator.rb +79 -0
  354. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/basicauth.rb +65 -0
  355. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/digestauth.rb +343 -0
  356. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htdigest.rb +91 -0
  357. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htgroup.rb +61 -0
  358. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htpasswd.rb +83 -0
  359. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/userdb.rb +29 -0
  360. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpproxy.rb +254 -0
  361. data/vendor/javascripts/emscripted-ruby/lib/webrick/httprequest.rb +365 -0
  362. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpresponse.rb +327 -0
  363. data/vendor/javascripts/emscripted-ruby/lib/webrick/https.rb +63 -0
  364. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpserver.rb +210 -0
  365. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet.rb +22 -0
  366. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/abstract.rb +71 -0
  367. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  368. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgihandler.rb +108 -0
  369. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/erbhandler.rb +54 -0
  370. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/filehandler.rb +435 -0
  371. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/prochandler.rb +33 -0
  372. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpstatus.rb +126 -0
  373. data/vendor/javascripts/emscripted-ruby/lib/webrick/httputils.rb +399 -0
  374. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpversion.rb +49 -0
  375. data/vendor/javascripts/emscripted-ruby/lib/webrick/log.rb +88 -0
  376. data/vendor/javascripts/emscripted-ruby/lib/webrick/server.rb +200 -0
  377. data/vendor/javascripts/emscripted-ruby/lib/webrick/ssl.rb +126 -0
  378. data/vendor/javascripts/emscripted-ruby/lib/webrick/utils.rb +100 -0
  379. data/vendor/javascripts/emscripted-ruby/lib/webrick/version.rb +13 -0
  380. data/vendor/javascripts/emscripted-ruby/lib/wsdl/binding.rb +65 -0
  381. data/vendor/javascripts/emscripted-ruby/lib/wsdl/data.rb +64 -0
  382. data/vendor/javascripts/emscripted-ruby/lib/wsdl/definitions.rb +250 -0
  383. data/vendor/javascripts/emscripted-ruby/lib/wsdl/documentation.rb +32 -0
  384. data/vendor/javascripts/emscripted-ruby/lib/wsdl/import.rb +80 -0
  385. data/vendor/javascripts/emscripted-ruby/lib/wsdl/importer.rb +38 -0
  386. data/vendor/javascripts/emscripted-ruby/lib/wsdl/info.rb +39 -0
  387. data/vendor/javascripts/emscripted-ruby/lib/wsdl/message.rb +54 -0
  388. data/vendor/javascripts/emscripted-ruby/lib/wsdl/operation.rb +130 -0
  389. data/vendor/javascripts/emscripted-ruby/lib/wsdl/operationBinding.rb +108 -0
  390. data/vendor/javascripts/emscripted-ruby/lib/wsdl/param.rb +85 -0
  391. data/vendor/javascripts/emscripted-ruby/lib/wsdl/parser.rb +163 -0
  392. data/vendor/javascripts/emscripted-ruby/lib/wsdl/part.rb +52 -0
  393. data/vendor/javascripts/emscripted-ruby/lib/wsdl/port.rb +84 -0
  394. data/vendor/javascripts/emscripted-ruby/lib/wsdl/portType.rb +73 -0
  395. data/vendor/javascripts/emscripted-ruby/lib/wsdl/service.rb +61 -0
  396. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/address.rb +40 -0
  397. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/binding.rb +49 -0
  398. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/body.rb +56 -0
  399. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/cgiStubCreator.rb +76 -0
  400. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreator.rb +314 -0
  401. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreatorSupport.rb +126 -0
  402. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/clientSkeltonCreator.rb +78 -0
  403. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/complexType.rb +161 -0
  404. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/data.rb +42 -0
  405. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/definitions.rb +149 -0
  406. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/driverCreator.rb +95 -0
  407. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/element.rb +28 -0
  408. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/fault.rb +56 -0
  409. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/header.rb +86 -0
  410. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/headerfault.rb +56 -0
  411. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/mappingRegistryCreator.rb +92 -0
  412. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/methodDefCreator.rb +228 -0
  413. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/operation.rb +122 -0
  414. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/servantSkeltonCreator.rb +67 -0
  415. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/standaloneServerStubCreator.rb +85 -0
  416. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/wsdl2ruby.rb +176 -0
  417. data/vendor/javascripts/emscripted-ruby/lib/wsdl/types.rb +43 -0
  418. data/vendor/javascripts/emscripted-ruby/lib/wsdl/wsdl.rb +23 -0
  419. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/all.rb +69 -0
  420. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/annotation.rb +34 -0
  421. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/any.rb +56 -0
  422. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/attribute.rb +127 -0
  423. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/choice.rb +69 -0
  424. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexContent.rb +92 -0
  425. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexType.rb +139 -0
  426. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/content.rb +96 -0
  427. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/data.rb +80 -0
  428. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/element.rb +154 -0
  429. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  430. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/import.rb +65 -0
  431. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/importer.rb +87 -0
  432. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/include.rb +54 -0
  433. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/length.rb +35 -0
  434. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/parser.rb +166 -0
  435. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/pattern.rb +36 -0
  436. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/schema.rb +143 -0
  437. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/sequence.rb +69 -0
  438. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleContent.rb +65 -0
  439. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  440. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleRestriction.rb +73 -0
  441. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleType.rb +73 -0
  442. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/unique.rb +34 -0
  443. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  444. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/.document +1 -0
  445. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/README.txt +31 -0
  446. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/base64.rb +81 -0
  447. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/client.rb +624 -0
  448. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/config.rb +40 -0
  449. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/create.rb +290 -0
  450. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/datetime.rb +142 -0
  451. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/httpserver.rb +178 -0
  452. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/marshal.rb +76 -0
  453. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/parser.rb +813 -0
  454. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/server.rb +780 -0
  455. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/utils.rb +165 -0
  456. data/vendor/javascripts/emscripted-ruby/lib/xsd/charset.rb +187 -0
  457. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen.rb +12 -0
  458. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/classdef.rb +203 -0
  459. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/commentdef.rb +34 -0
  460. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/gensupport.rb +166 -0
  461. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/methoddef.rb +63 -0
  462. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/moduledef.rb +191 -0
  463. data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes.rb +1269 -0
  464. data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes1999.rb +20 -0
  465. data/vendor/javascripts/emscripted-ruby/lib/xsd/iconvcharset.rb +33 -0
  466. data/vendor/javascripts/emscripted-ruby/lib/xsd/mapping.rb +42 -0
  467. data/vendor/javascripts/emscripted-ruby/lib/xsd/namedelements.rb +95 -0
  468. data/vendor/javascripts/emscripted-ruby/lib/xsd/ns.rb +140 -0
  469. data/vendor/javascripts/emscripted-ruby/lib/xsd/qname.rb +78 -0
  470. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser.rb +61 -0
  471. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/parser.rb +96 -0
  472. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  473. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlparser.rb +50 -0
  474. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  475. data/vendor/javascripts/emscripted-ruby/lib/yaml.rb +440 -0
  476. data/vendor/javascripts/emscripted-ruby/lib/yaml/baseemitter.rb +247 -0
  477. data/vendor/javascripts/emscripted-ruby/lib/yaml/basenode.rb +216 -0
  478. data/vendor/javascripts/emscripted-ruby/lib/yaml/constants.rb +45 -0
  479. data/vendor/javascripts/emscripted-ruby/lib/yaml/dbm.rb +111 -0
  480. data/vendor/javascripts/emscripted-ruby/lib/yaml/encoding.rb +33 -0
  481. data/vendor/javascripts/emscripted-ruby/lib/yaml/error.rb +34 -0
  482. data/vendor/javascripts/emscripted-ruby/lib/yaml/loader.rb +14 -0
  483. data/vendor/javascripts/emscripted-ruby/lib/yaml/rubytypes.rb +408 -0
  484. data/vendor/javascripts/emscripted-ruby/lib/yaml/store.rb +43 -0
  485. data/vendor/javascripts/emscripted-ruby/lib/yaml/stream.rb +40 -0
  486. data/vendor/javascripts/emscripted-ruby/lib/yaml/stringio.rb +83 -0
  487. data/vendor/javascripts/emscripted-ruby/lib/yaml/syck.rb +19 -0
  488. data/vendor/javascripts/emscripted-ruby/lib/yaml/tag.rb +91 -0
  489. data/vendor/javascripts/emscripted-ruby/lib/yaml/types.rb +192 -0
  490. data/vendor/javascripts/emscripted-ruby/lib/yaml/yamlnode.rb +54 -0
  491. data/vendor/javascripts/emscripted-ruby/lib/yaml/ypath.rb +52 -0
  492. data/vendor/javascripts/emscripted-ruby/ruby.closure.js +7201 -0
  493. metadata +554 -0
@@ -0,0 +1,5 @@
1
+ # date2 was overridden by date.
2
+ # To be precise, date was overridden by date2,
3
+ # and date2 was renamed to date.
4
+
5
+ require 'date'
@@ -0,0 +1,947 @@
1
+ # Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
2
+ # Copyright (C) 2000 Information-technology Promotion Agency, Japan
3
+ # Copyright (C) 2000-2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
4
+
5
+ if $SAFE > 0
6
+ STDERR.print "-r debug.rb is not available in safe mode\n"
7
+ exit 1
8
+ end
9
+
10
+ require 'tracer'
11
+ require 'pp'
12
+
13
+ class Tracer
14
+ def Tracer.trace_func(*vars)
15
+ Single.trace_func(*vars)
16
+ end
17
+ end
18
+
19
+ SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__
20
+
21
+ class DEBUGGER__
22
+ class Mutex
23
+ def initialize
24
+ @locker = nil
25
+ @waiting = []
26
+ @locked = false;
27
+ end
28
+
29
+ def locked?
30
+ @locked
31
+ end
32
+
33
+ def lock
34
+ return if Thread.critical
35
+ return if @locker == Thread.current
36
+ while (Thread.critical = true; @locked)
37
+ @waiting.push Thread.current
38
+ Thread.stop
39
+ end
40
+ @locked = true
41
+ @locker = Thread.current
42
+ Thread.critical = false
43
+ self
44
+ end
45
+
46
+ def unlock
47
+ return if Thread.critical
48
+ return unless @locked
49
+ unless @locker == Thread.current
50
+ raise RuntimeError, "unlocked by other"
51
+ end
52
+ Thread.critical = true
53
+ t = @waiting.shift
54
+ @locked = false
55
+ @locker = nil
56
+ Thread.critical = false
57
+ t.run if t
58
+ self
59
+ end
60
+ end
61
+ MUTEX = Mutex.new
62
+
63
+ class Context
64
+ DEBUG_LAST_CMD = []
65
+
66
+ begin
67
+ require 'readline'
68
+ def readline(prompt, hist)
69
+ Readline::readline(prompt, hist)
70
+ end
71
+ rescue LoadError
72
+ def readline(prompt, hist)
73
+ STDOUT.print prompt
74
+ STDOUT.flush
75
+ line = STDIN.gets
76
+ exit unless line
77
+ line.chomp!
78
+ line
79
+ end
80
+ USE_READLINE = false
81
+ end
82
+
83
+ def initialize
84
+ if Thread.current == Thread.main
85
+ @stop_next = 1
86
+ else
87
+ @stop_next = 0
88
+ end
89
+ @last_file = nil
90
+ @file = nil
91
+ @line = nil
92
+ @no_step = nil
93
+ @frames = []
94
+ @finish_pos = 0
95
+ @trace = false
96
+ @catch = "StandardError"
97
+ @suspend_next = false
98
+ end
99
+
100
+ def stop_next(n=1)
101
+ @stop_next = n
102
+ end
103
+
104
+ def set_suspend
105
+ @suspend_next = true
106
+ end
107
+
108
+ def clear_suspend
109
+ @suspend_next = false
110
+ end
111
+
112
+ def suspend_all
113
+ DEBUGGER__.suspend
114
+ end
115
+
116
+ def resume_all
117
+ DEBUGGER__.resume
118
+ end
119
+
120
+ def check_suspend
121
+ return if Thread.critical
122
+ while (Thread.critical = true; @suspend_next)
123
+ DEBUGGER__.waiting.push Thread.current
124
+ @suspend_next = false
125
+ Thread.stop
126
+ end
127
+ Thread.critical = false
128
+ end
129
+
130
+ def trace?
131
+ @trace
132
+ end
133
+
134
+ def set_trace(arg)
135
+ @trace = arg
136
+ end
137
+
138
+ def stdout
139
+ DEBUGGER__.stdout
140
+ end
141
+
142
+ def break_points
143
+ DEBUGGER__.break_points
144
+ end
145
+
146
+ def display
147
+ DEBUGGER__.display
148
+ end
149
+
150
+ def context(th)
151
+ DEBUGGER__.context(th)
152
+ end
153
+
154
+ def set_trace_all(arg)
155
+ DEBUGGER__.set_trace(arg)
156
+ end
157
+
158
+ def set_last_thread(th)
159
+ DEBUGGER__.set_last_thread(th)
160
+ end
161
+
162
+ def debug_eval(str, binding)
163
+ begin
164
+ val = eval(str, binding)
165
+ rescue StandardError, ScriptError => e
166
+ at = eval("caller(1)", binding)
167
+ stdout.printf "%s:%s\n", at.shift, e.to_s.sub(/\(eval\):1:(in `.*?':)?/, '')
168
+ for i in at
169
+ stdout.printf "\tfrom %s\n", i
170
+ end
171
+ throw :debug_error
172
+ end
173
+ end
174
+
175
+ def debug_silent_eval(str, binding)
176
+ begin
177
+ eval(str, binding)
178
+ rescue StandardError, ScriptError
179
+ nil
180
+ end
181
+ end
182
+
183
+ def var_list(ary, binding)
184
+ ary.sort!
185
+ for v in ary
186
+ stdout.printf " %s => %s\n", v, eval(v, binding).inspect
187
+ end
188
+ end
189
+
190
+ def debug_variable_info(input, binding)
191
+ case input
192
+ when /^\s*g(?:lobal)?\s*$/
193
+ var_list(global_variables, binding)
194
+
195
+ when /^\s*l(?:ocal)?\s*$/
196
+ var_list(eval("local_variables", binding), binding)
197
+
198
+ when /^\s*i(?:nstance)?\s+/
199
+ obj = debug_eval($', binding)
200
+ var_list(obj.instance_variables, obj.instance_eval{binding()})
201
+
202
+ when /^\s*c(?:onst(?:ant)?)?\s+/
203
+ obj = debug_eval($', binding)
204
+ unless obj.kind_of? Module
205
+ stdout.print "Should be Class/Module: ", $', "\n"
206
+ else
207
+ var_list(obj.constants, obj.module_eval{binding()})
208
+ end
209
+ end
210
+ end
211
+
212
+ def debug_method_info(input, binding)
213
+ case input
214
+ when /^i(:?nstance)?\s+/
215
+ obj = debug_eval($', binding)
216
+
217
+ len = 0
218
+ for v in obj.methods.sort
219
+ len += v.size + 1
220
+ if len > 70
221
+ len = v.size + 1
222
+ stdout.print "\n"
223
+ end
224
+ stdout.print v, " "
225
+ end
226
+ stdout.print "\n"
227
+
228
+ else
229
+ obj = debug_eval(input, binding)
230
+ unless obj.kind_of? Module
231
+ stdout.print "Should be Class/Module: ", input, "\n"
232
+ else
233
+ len = 0
234
+ for v in obj.instance_methods(false).sort
235
+ len += v.size + 1
236
+ if len > 70
237
+ len = v.size + 1
238
+ stdout.print "\n"
239
+ end
240
+ stdout.print v, " "
241
+ end
242
+ stdout.print "\n"
243
+ end
244
+ end
245
+ end
246
+
247
+ def thnum
248
+ num = DEBUGGER__.instance_eval{@thread_list[Thread.current]}
249
+ unless num
250
+ DEBUGGER__.make_thread_list
251
+ num = DEBUGGER__.instance_eval{@thread_list[Thread.current]}
252
+ end
253
+ num
254
+ end
255
+
256
+ def debug_command(file, line, id, binding)
257
+ MUTEX.lock
258
+ unless defined?($debugger_restart) and $debugger_restart
259
+ callcc{|c| $debugger_restart = c}
260
+ end
261
+ set_last_thread(Thread.current)
262
+ frame_pos = 0
263
+ binding_file = file
264
+ binding_line = line
265
+ previous_line = nil
266
+ if ENV['EMACS']
267
+ stdout.printf "\032\032%s:%d:\n", binding_file, binding_line
268
+ else
269
+ stdout.printf "%s:%d:%s", binding_file, binding_line,
270
+ line_at(binding_file, binding_line)
271
+ end
272
+ @frames[0] = [binding, file, line, id]
273
+ display_expressions(binding)
274
+ prompt = true
275
+ while prompt and input = readline("(rdb:%d) "%thnum(), true)
276
+ catch(:debug_error) do
277
+ if input == ""
278
+ next unless DEBUG_LAST_CMD[0]
279
+ input = DEBUG_LAST_CMD[0]
280
+ stdout.print input, "\n"
281
+ else
282
+ DEBUG_LAST_CMD[0] = input
283
+ end
284
+
285
+ case input
286
+ when /^\s*tr(?:ace)?(?:\s+(on|off))?(?:\s+(all))?$/
287
+ if defined?( $2 )
288
+ if $1 == 'on'
289
+ set_trace_all true
290
+ else
291
+ set_trace_all false
292
+ end
293
+ elsif defined?( $1 )
294
+ if $1 == 'on'
295
+ set_trace true
296
+ else
297
+ set_trace false
298
+ end
299
+ end
300
+ if trace?
301
+ stdout.print "Trace on.\n"
302
+ else
303
+ stdout.print "Trace off.\n"
304
+ end
305
+
306
+ when /^\s*b(?:reak)?\s+(?:(.+):)?([^.:]+)$/
307
+ pos = $2
308
+ if $1
309
+ klass = debug_silent_eval($1, binding)
310
+ file = $1
311
+ end
312
+ if pos =~ /^\d+$/
313
+ pname = pos
314
+ pos = pos.to_i
315
+ else
316
+ pname = pos = pos.intern.id2name
317
+ end
318
+ break_points.push [true, 0, klass || file, pos]
319
+ stdout.printf "Set breakpoint %d at %s:%s\n", break_points.size, klass || file, pname
320
+
321
+ when /^\s*b(?:reak)?\s+(.+)[#.]([^.:]+)$/
322
+ pos = $2.intern.id2name
323
+ klass = debug_eval($1, binding)
324
+ break_points.push [true, 0, klass, pos]
325
+ stdout.printf "Set breakpoint %d at %s.%s\n", break_points.size, klass, pos
326
+
327
+ when /^\s*wat(?:ch)?\s+(.+)$/
328
+ exp = $1
329
+ break_points.push [true, 1, exp]
330
+ stdout.printf "Set watchpoint %d:%s\n", break_points.size, exp
331
+
332
+ when /^\s*b(?:reak)?$/
333
+ if break_points.find{|b| b[1] == 0}
334
+ n = 1
335
+ stdout.print "Breakpoints:\n"
336
+ for b in break_points
337
+ if b[0] and b[1] == 0
338
+ stdout.printf " %d %s:%s\n", n, b[2], b[3]
339
+ end
340
+ n += 1
341
+ end
342
+ end
343
+ if break_points.find{|b| b[1] == 1}
344
+ n = 1
345
+ stdout.print "\n"
346
+ stdout.print "Watchpoints:\n"
347
+ for b in break_points
348
+ if b[0] and b[1] == 1
349
+ stdout.printf " %d %s\n", n, b[2]
350
+ end
351
+ n += 1
352
+ end
353
+ end
354
+ if break_points.size == 0
355
+ stdout.print "No breakpoints\n"
356
+ else
357
+ stdout.print "\n"
358
+ end
359
+
360
+ when /^\s*del(?:ete)?(?:\s+(\d+))?$/
361
+ pos = $1
362
+ unless pos
363
+ input = readline("Clear all breakpoints? (y/n) ", false)
364
+ if input == "y"
365
+ for b in break_points
366
+ b[0] = false
367
+ end
368
+ end
369
+ else
370
+ pos = pos.to_i
371
+ if break_points[pos-1]
372
+ break_points[pos-1][0] = false
373
+ else
374
+ stdout.printf "Breakpoint %d is not defined\n", pos
375
+ end
376
+ end
377
+
378
+ when /^\s*disp(?:lay)?\s+(.+)$/
379
+ exp = $1
380
+ display.push [true, exp]
381
+ stdout.printf "%d: ", display.size
382
+ display_expression(exp, binding)
383
+
384
+ when /^\s*disp(?:lay)?$/
385
+ display_expressions(binding)
386
+
387
+ when /^\s*undisp(?:lay)?(?:\s+(\d+))?$/
388
+ pos = $1
389
+ unless pos
390
+ input = readline("Clear all expressions? (y/n) ", false)
391
+ if input == "y"
392
+ for d in display
393
+ d[0] = false
394
+ end
395
+ end
396
+ else
397
+ pos = pos.to_i
398
+ if display[pos-1]
399
+ display[pos-1][0] = false
400
+ else
401
+ stdout.printf "Display expression %d is not defined\n", pos
402
+ end
403
+ end
404
+
405
+ when /^\s*c(?:ont)?$/
406
+ prompt = false
407
+
408
+ when /^\s*s(?:tep)?(?:\s+(\d+))?$/
409
+ if $1
410
+ lev = $1.to_i
411
+ else
412
+ lev = 1
413
+ end
414
+ @stop_next = lev
415
+ prompt = false
416
+
417
+ when /^\s*n(?:ext)?(?:\s+(\d+))?$/
418
+ if $1
419
+ lev = $1.to_i
420
+ else
421
+ lev = 1
422
+ end
423
+ @stop_next = lev
424
+ @no_step = @frames.size - frame_pos
425
+ prompt = false
426
+
427
+ when /^\s*w(?:here)?$/, /^\s*f(?:rame)?$/
428
+ display_frames(frame_pos)
429
+
430
+ when /^\s*l(?:ist)?(?:\s+(.+))?$/
431
+ if not $1
432
+ b = previous_line ? previous_line + 10 : binding_line - 5
433
+ e = b + 9
434
+ elsif $1 == '-'
435
+ b = previous_line ? previous_line - 10 : binding_line - 5
436
+ e = b + 9
437
+ else
438
+ b, e = $1.split(/[-,]/)
439
+ if e
440
+ b = b.to_i
441
+ e = e.to_i
442
+ else
443
+ b = b.to_i - 5
444
+ e = b + 9
445
+ end
446
+ end
447
+ previous_line = b
448
+ display_list(b, e, binding_file, binding_line)
449
+
450
+ when /^\s*up(?:\s+(\d+))?$/
451
+ previous_line = nil
452
+ if $1
453
+ lev = $1.to_i
454
+ else
455
+ lev = 1
456
+ end
457
+ frame_pos += lev
458
+ if frame_pos >= @frames.size
459
+ frame_pos = @frames.size - 1
460
+ stdout.print "At toplevel\n"
461
+ end
462
+ binding, binding_file, binding_line = @frames[frame_pos]
463
+ stdout.print format_frame(frame_pos)
464
+
465
+ when /^\s*down(?:\s+(\d+))?$/
466
+ previous_line = nil
467
+ if $1
468
+ lev = $1.to_i
469
+ else
470
+ lev = 1
471
+ end
472
+ frame_pos -= lev
473
+ if frame_pos < 0
474
+ frame_pos = 0
475
+ stdout.print "At stack bottom\n"
476
+ end
477
+ binding, binding_file, binding_line = @frames[frame_pos]
478
+ stdout.print format_frame(frame_pos)
479
+
480
+ when /^\s*fin(?:ish)?$/
481
+ if frame_pos == @frames.size
482
+ stdout.print "\"finish\" not meaningful in the outermost frame.\n"
483
+ else
484
+ @finish_pos = @frames.size - frame_pos
485
+ frame_pos = 0
486
+ prompt = false
487
+ end
488
+
489
+ when /^\s*cat(?:ch)?(?:\s+(.+))?$/
490
+ if $1
491
+ excn = $1
492
+ if excn == 'off'
493
+ @catch = nil
494
+ stdout.print "Clear catchpoint.\n"
495
+ else
496
+ @catch = excn
497
+ stdout.printf "Set catchpoint %s.\n", @catch
498
+ end
499
+ else
500
+ if @catch
501
+ stdout.printf "Catchpoint %s.\n", @catch
502
+ else
503
+ stdout.print "No catchpoint.\n"
504
+ end
505
+ end
506
+
507
+ when /^\s*q(?:uit)?$/
508
+ input = readline("Really quit? (y/n) ", false)
509
+ if input == "y"
510
+ exit! # exit -> exit!: No graceful way to stop threads...
511
+ end
512
+
513
+ when /^\s*v(?:ar)?\s+/
514
+ debug_variable_info($', binding)
515
+
516
+ when /^\s*m(?:ethod)?\s+/
517
+ debug_method_info($', binding)
518
+
519
+ when /^\s*th(?:read)?\s+/
520
+ if DEBUGGER__.debug_thread_info($', binding) == :cont
521
+ prompt = false
522
+ end
523
+
524
+ when /^\s*pp\s+/
525
+ PP.pp(debug_eval($', binding), stdout)
526
+
527
+ when /^\s*p\s+/
528
+ stdout.printf "%s\n", debug_eval($', binding).inspect
529
+
530
+ when /^\s*r(?:estart)?$/
531
+ $debugger_restart.call
532
+
533
+ when /^\s*h(?:elp)?$/
534
+ debug_print_help()
535
+
536
+ else
537
+ v = debug_eval(input, binding)
538
+ stdout.printf "%s\n", v.inspect
539
+ end
540
+ end
541
+ end
542
+ MUTEX.unlock
543
+ resume_all
544
+ end
545
+
546
+ def debug_print_help
547
+ stdout.print <<EOHELP
548
+ Debugger help v.-0.002b
549
+ Commands
550
+ b[reak] [file:|class:]<line|method>
551
+ b[reak] [class.]<line|method>
552
+ set breakpoint to some position
553
+ wat[ch] <expression> set watchpoint to some expression
554
+ cat[ch] (<exception>|off) set catchpoint to an exception
555
+ b[reak] list breakpoints
556
+ cat[ch] show catchpoint
557
+ del[ete][ nnn] delete some or all breakpoints
558
+ disp[lay] <expression> add expression into display expression list
559
+ undisp[lay][ nnn] delete one particular or all display expressions
560
+ c[ont] run until program ends or hit breakpoint
561
+ s[tep][ nnn] step (into methods) one line or till line nnn
562
+ n[ext][ nnn] go over one line or till line nnn
563
+ w[here] display frames
564
+ f[rame] alias for where
565
+ l[ist][ (-|nn-mm)] list program, - lists backwards
566
+ nn-mm lists given lines
567
+ up[ nn] move to higher frame
568
+ down[ nn] move to lower frame
569
+ fin[ish] return to outer frame
570
+ tr[ace] (on|off) set trace mode of current thread
571
+ tr[ace] (on|off) all set trace mode of all threads
572
+ q[uit] exit from debugger
573
+ v[ar] g[lobal] show global variables
574
+ v[ar] l[ocal] show local variables
575
+ v[ar] i[nstance] <object> show instance variables of object
576
+ v[ar] c[onst] <object> show constants of object
577
+ m[ethod] i[nstance] <obj> show methods of object
578
+ m[ethod] <class|module> show instance methods of class or module
579
+ th[read] l[ist] list all threads
580
+ th[read] c[ur[rent]] show current thread
581
+ th[read] [sw[itch]] <nnn> switch thread context to nnn
582
+ th[read] stop <nnn> stop thread nnn
583
+ th[read] resume <nnn> resume thread nnn
584
+ p expression evaluate expression and print its value
585
+ h[elp] print this help
586
+ <everything else> evaluate
587
+ EOHELP
588
+ end
589
+
590
+ def display_expressions(binding)
591
+ n = 1
592
+ for d in display
593
+ if d[0]
594
+ stdout.printf "%d: ", n
595
+ display_expression(d[1], binding)
596
+ end
597
+ n += 1
598
+ end
599
+ end
600
+
601
+ def display_expression(exp, binding)
602
+ stdout.printf "%s = %s\n", exp, debug_silent_eval(exp, binding).to_s
603
+ end
604
+
605
+ def frame_set_pos(file, line)
606
+ if @frames[0]
607
+ @frames[0][1] = file
608
+ @frames[0][2] = line
609
+ end
610
+ end
611
+
612
+ def display_frames(pos)
613
+ 0.upto(@frames.size - 1) do |n|
614
+ if n == pos
615
+ stdout.print "--> "
616
+ else
617
+ stdout.print " "
618
+ end
619
+ stdout.print format_frame(n)
620
+ end
621
+ end
622
+
623
+ def format_frame(pos)
624
+ bind, file, line, id = @frames[pos]
625
+ sprintf "#%d %s:%s%s\n", pos + 1, file, line,
626
+ (id ? ":in `#{id.id2name}'" : "")
627
+ end
628
+
629
+ def display_list(b, e, file, line)
630
+ stdout.printf "[%d, %d] in %s\n", b, e, file
631
+ if lines = SCRIPT_LINES__[file] and lines != true
632
+ n = 0
633
+ b.upto(e) do |n|
634
+ if n > 0 && lines[n-1]
635
+ if n == line
636
+ stdout.printf "=> %d %s\n", n, lines[n-1].chomp
637
+ else
638
+ stdout.printf " %d %s\n", n, lines[n-1].chomp
639
+ end
640
+ end
641
+ end
642
+ else
643
+ stdout.printf "No sourcefile available for %s\n", file
644
+ end
645
+ end
646
+
647
+ def line_at(file, line)
648
+ lines = SCRIPT_LINES__[file]
649
+ if lines
650
+ return "\n" if lines == true
651
+ line = lines[line-1]
652
+ return "\n" unless line
653
+ return line
654
+ end
655
+ return "\n"
656
+ end
657
+
658
+ def debug_funcname(id)
659
+ if id.nil?
660
+ "toplevel"
661
+ else
662
+ id.id2name
663
+ end
664
+ end
665
+
666
+ def check_break_points(file, klass, pos, binding, id)
667
+ return false if break_points.empty?
668
+ n = 1
669
+ for b in break_points
670
+ if b[0] # valid
671
+ if b[1] == 0 # breakpoint
672
+ if (b[2] == file and b[3] == pos) or
673
+ (klass and b[2] == klass and b[3] == pos)
674
+ stdout.printf "Breakpoint %d, %s at %s:%s\n", n, debug_funcname(id), file, pos
675
+ return true
676
+ end
677
+ elsif b[1] == 1 # watchpoint
678
+ if debug_silent_eval(b[2], binding)
679
+ stdout.printf "Watchpoint %d, %s at %s:%s\n", n, debug_funcname(id), file, pos
680
+ return true
681
+ end
682
+ end
683
+ end
684
+ n += 1
685
+ end
686
+ return false
687
+ end
688
+
689
+ def excn_handle(file, line, id, binding)
690
+ if $!.class <= SystemExit
691
+ set_trace_func nil
692
+ exit
693
+ end
694
+
695
+ if @catch and ($!.class.ancestors.find { |e| e.to_s == @catch })
696
+ stdout.printf "%s:%d: `%s' (%s)\n", file, line, $!, $!.class
697
+ fs = @frames.size
698
+ tb = caller(0)[-fs..-1]
699
+ if tb
700
+ for i in tb
701
+ stdout.printf "\tfrom %s\n", i
702
+ end
703
+ end
704
+ suspend_all
705
+ debug_command(file, line, id, binding)
706
+ end
707
+ end
708
+
709
+ def trace_func(event, file, line, id, binding, klass)
710
+ Tracer.trace_func(event, file, line, id, binding, klass) if trace?
711
+ context(Thread.current).check_suspend
712
+ @file = file
713
+ @line = line
714
+ case event
715
+ when 'line'
716
+ frame_set_pos(file, line)
717
+ if !@no_step or @frames.size == @no_step
718
+ @stop_next -= 1
719
+ @stop_next = -1 if @stop_next < 0
720
+ elsif @frames.size < @no_step
721
+ @stop_next = 0 # break here before leaving...
722
+ else
723
+ # nothing to do. skipped.
724
+ end
725
+ if @stop_next == 0 or check_break_points(file, nil, line, binding, id)
726
+ @no_step = nil
727
+ suspend_all
728
+ debug_command(file, line, id, binding)
729
+ end
730
+
731
+ when 'call'
732
+ @frames.unshift [binding, file, line, id]
733
+ if check_break_points(file, klass, id.id2name, binding, id)
734
+ suspend_all
735
+ debug_command(file, line, id, binding)
736
+ end
737
+
738
+ when 'c-call'
739
+ frame_set_pos(file, line)
740
+
741
+ when 'class'
742
+ @frames.unshift [binding, file, line, id]
743
+
744
+ when 'return', 'end'
745
+ if @frames.size == @finish_pos
746
+ @stop_next = 1
747
+ @finish_pos = 0
748
+ end
749
+ @frames.shift
750
+
751
+ when 'end'
752
+ @frames.shift
753
+
754
+ when 'raise'
755
+ excn_handle(file, line, id, binding)
756
+
757
+ end
758
+ @last_file = file
759
+ end
760
+ end
761
+
762
+ trap("INT") { DEBUGGER__.interrupt }
763
+ @last_thread = Thread::main
764
+ @max_thread = 1
765
+ @thread_list = {Thread::main => 1}
766
+ @break_points = []
767
+ @display = []
768
+ @waiting = []
769
+ @stdout = STDOUT
770
+
771
+ class << DEBUGGER__
772
+ def stdout
773
+ @stdout
774
+ end
775
+
776
+ def stdout=(s)
777
+ @stdout = s
778
+ end
779
+
780
+ def display
781
+ @display
782
+ end
783
+
784
+ def break_points
785
+ @break_points
786
+ end
787
+
788
+ def waiting
789
+ @waiting
790
+ end
791
+
792
+ def set_trace( arg )
793
+ saved_crit = Thread.critical
794
+ Thread.critical = true
795
+ make_thread_list
796
+ for th, in @thread_list
797
+ context(th).set_trace arg
798
+ end
799
+ Thread.critical = saved_crit
800
+ arg
801
+ end
802
+
803
+ def set_last_thread(th)
804
+ @last_thread = th
805
+ end
806
+
807
+ def suspend
808
+ saved_crit = Thread.critical
809
+ Thread.critical = true
810
+ make_thread_list
811
+ for th, in @thread_list
812
+ next if th == Thread.current
813
+ context(th).set_suspend
814
+ end
815
+ Thread.critical = saved_crit
816
+ # Schedule other threads to suspend as soon as possible.
817
+ Thread.pass unless Thread.critical
818
+ end
819
+
820
+ def resume
821
+ saved_crit = Thread.critical
822
+ Thread.critical = true
823
+ make_thread_list
824
+ for th, in @thread_list
825
+ next if th == Thread.current
826
+ context(th).clear_suspend
827
+ end
828
+ waiting.each do |th|
829
+ th.run
830
+ end
831
+ waiting.clear
832
+ Thread.critical = saved_crit
833
+ # Schedule other threads to restart as soon as possible.
834
+ Thread.pass
835
+ end
836
+
837
+ def context(thread=Thread.current)
838
+ c = thread[:__debugger_data__]
839
+ unless c
840
+ thread[:__debugger_data__] = c = Context.new
841
+ end
842
+ c
843
+ end
844
+
845
+ def interrupt
846
+ context(@last_thread).stop_next
847
+ end
848
+
849
+ def get_thread(num)
850
+ th = @thread_list.index(num)
851
+ unless th
852
+ @stdout.print "No thread ##{num}\n"
853
+ throw :debug_error
854
+ end
855
+ th
856
+ end
857
+
858
+ def thread_list(num)
859
+ th = get_thread(num)
860
+ if th == Thread.current
861
+ @stdout.print "+"
862
+ else
863
+ @stdout.print " "
864
+ end
865
+ @stdout.printf "%d ", num
866
+ @stdout.print th.inspect, "\t"
867
+ file = context(th).instance_eval{@file}
868
+ if file
869
+ @stdout.print file,":",context(th).instance_eval{@line}
870
+ end
871
+ @stdout.print "\n"
872
+ end
873
+
874
+ def thread_list_all
875
+ for th in @thread_list.values.sort
876
+ thread_list(th)
877
+ end
878
+ end
879
+
880
+ def make_thread_list
881
+ hash = {}
882
+ for th in Thread::list
883
+ if @thread_list.key? th
884
+ hash[th] = @thread_list[th]
885
+ else
886
+ @max_thread += 1
887
+ hash[th] = @max_thread
888
+ end
889
+ end
890
+ @thread_list = hash
891
+ end
892
+
893
+ def debug_thread_info(input, binding)
894
+ case input
895
+ when /^l(?:ist)?/
896
+ make_thread_list
897
+ thread_list_all
898
+
899
+ when /^c(?:ur(?:rent)?)?$/
900
+ make_thread_list
901
+ thread_list(@thread_list[Thread.current])
902
+
903
+ when /^(?:sw(?:itch)?\s+)?(\d+)/
904
+ make_thread_list
905
+ th = get_thread($1.to_i)
906
+ if th == Thread.current
907
+ @stdout.print "It's the current thread.\n"
908
+ else
909
+ thread_list(@thread_list[th])
910
+ context(th).stop_next
911
+ th.run
912
+ return :cont
913
+ end
914
+
915
+ when /^stop\s+(\d+)/
916
+ make_thread_list
917
+ th = get_thread($1.to_i)
918
+ if th == Thread.current
919
+ @stdout.print "It's the current thread.\n"
920
+ elsif th.stop?
921
+ @stdout.print "Already stopped.\n"
922
+ else
923
+ thread_list(@thread_list[th])
924
+ context(th).suspend
925
+ end
926
+
927
+ when /^resume\s+(\d+)/
928
+ make_thread_list
929
+ th = get_thread($1.to_i)
930
+ if th == Thread.current
931
+ @stdout.print "It's the current thread.\n"
932
+ elsif !th.stop?
933
+ @stdout.print "Already running."
934
+ else
935
+ thread_list(@thread_list[th])
936
+ th.run
937
+ end
938
+ end
939
+ end
940
+ end
941
+
942
+ stdout.printf "Debug.rb\n"
943
+ stdout.printf "Emacs support available.\n\n"
944
+ set_trace_func proc { |event, file, line, id, binding, klass, *rest|
945
+ DEBUGGER__.context.trace_func event, file, line, id, binding, klass
946
+ }
947
+ end