ruby_on_ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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