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,18 @@
1
+ # Env.rb -- imports environment variables as global variables, Perlish ;(
2
+ # Usage:
3
+ #
4
+ # require 'Env'
5
+ # p $USER
6
+ # $USER = "matz"
7
+ # p ENV["USER"]
8
+
9
+ require 'importenv'
10
+
11
+ if __FILE__ == $0
12
+ p $TERM
13
+ $TERM = nil
14
+ p $TERM
15
+ p ENV["TERM"]
16
+ $TERM = "foo"
17
+ p ENV["TERM"]
18
+ end
@@ -0,0 +1,96 @@
1
+ English.rb lets Perl'ish global variables have English names
2
+ Env.rb loads importenv.rb
3
+ README this file
4
+ base64.rb encodes/decodes base64 (obsolete)
5
+ benchmark.rb a benchmark utility
6
+ cgi-lib.rb simple CGI support library (old style)
7
+ cgi.rb CGI support library
8
+ cgi/session.rb CGI session class
9
+ complex.rb complex number support
10
+ csv.rb CSV parser/generator
11
+ date.rb date object
12
+ date/format.rb date parsing and formatting
13
+ date2.rb date object (obsolete; use date)
14
+ debug.rb ruby debugger
15
+ delegate.rb delegates messages to other object
16
+ drb.rb distributed Ruby
17
+ e2mmap.rb exception utilities
18
+ erb.rb tiny eRuby library
19
+ eregex.rb extended regular expression (just a proof of concept)
20
+ fileutils.rb file utilities
21
+ finalize.rb adds finalizer to the object
22
+ find.rb traverses directory tree
23
+ forwardable.rb explicit delegation library
24
+ ftools.rb file tools
25
+ getoptlong.rb GNU getoptlong compatible
26
+ getopts.rb parses command line options (use getoptlong)
27
+ gserver.rb general TCP server
28
+ importenv.rb imports environment variables as global variables
29
+ ipaddr.rb defines the IPAddr class
30
+ irb.rb interactive ruby
31
+ jcode.rb Japanese text handling (replace String methods)
32
+ logger.rb simple logging utility
33
+ mailread.rb reads mail headers
34
+ mathn.rb extended math operation
35
+ matrix.rb matrix calculation library
36
+ mkmf.rb Makefile maker
37
+ monitor.rb exclusive region monitor for thread
38
+ mutex_m.rb mutex mixin
39
+ net/ftp.rb ftp access
40
+ net/http.rb HTTP access
41
+ net/imap.rb IMAP4 access
42
+ net/pop.rb POP3 access
43
+ net/protocol.rb abstract class for net library (DO NOT USE)
44
+ net/smtp.rb SMTP access
45
+ net/telnet.rb telnet library
46
+ observer.rb observer desing pattern library (provides Observable)
47
+ open-uri.rb easy-to-use network interface using URI and Net
48
+ open3.rb opens subprocess connection stdin/stdout/stderr
49
+ optparse.rb command line option analysis
50
+ ostruct.rb python style object
51
+ parsearg.rb argument parser using getopts
52
+ parsedate.rb parses date string (obsolete)
53
+ pathname.rb Object-Oriented Pathname Class
54
+ ping.rb checks whether host is up, using TCP echo.
55
+ pp.rb pretty print objects
56
+ prettyprint.rb pretty printing algorithm
57
+ profile.rb runs ruby profiler
58
+ profiler.rb ruby profiler module
59
+ pstore.rb persistent object strage using marshal
60
+ racc/parser.rb racc (Ruby yACC) runtime
61
+ rational.rb rational number support
62
+ rdoc source-code documentation tool
63
+ readbytes.rb define IO#readbytes
64
+ resolv-replace.rb replace Socket DNS by resolve.rb
65
+ resolv.rb DNS resolver in Ruby
66
+ rexml an XML parser for Ruby, in Ruby
67
+ rubyunit.rb original Ruby Unit testing framework
68
+ scanf.rb scanf for Ruby
69
+ set.rb defines the Set class
70
+ shell.rb runs commands and does pipeline operations like shell
71
+ shellwords.rb split into words like shell
72
+ singleton.rb singleton design pattern library
73
+ soap SOAP 1.1 implementation
74
+ sync.rb 2 phase lock
75
+ tempfile.rb temporary file with automatic removal
76
+ test/unit Ruby Unit Testing Framework
77
+ thread.rb thread support
78
+ thwait.rb thread syncronization class
79
+ time.rb RFC2822, RFC2616, ISO8601 style time formatting/parsing
80
+ timeout.rb provides timeout
81
+ tmpdir.rb retrieve temporary directory path
82
+ tracer.rb execution tracer
83
+ tsort.rb topological sorting
84
+ un.rb Utilities to replace common UNIX commands in Makefiles etc
85
+ uri.rb URI support
86
+ uri/ftp.rb ftp scheme support
87
+ uri/http.rb http scheme support
88
+ uri/https.rb https scheme support
89
+ uri/ldap.rb ldap scheme support
90
+ uri/mailto.rb mailto scheme support
91
+ weakref.rb weak reference class
92
+ webrick.rb WEB server toolkit
93
+ wsdl WSDL 1.1 implementation
94
+ xmlrpc XML-RPC implementation
95
+ xsd XML Schema Datatypes implementation
96
+ yaml.rb YAML implementation
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ #
4
+ # Copyright (c) 2001,2003 Akinori MUSHA <knu@iDaemons.org>
5
+ #
6
+ # All rights reserved. You can redistribute and/or modify it under
7
+ # the same terms as Ruby.
8
+ #
9
+ # $Idaemons: /home/cvs/rb/abbrev.rb,v 1.2 2001/05/30 09:37:45 knu Exp $
10
+ # $RoughId: abbrev.rb,v 1.4 2003/10/14 19:45:42 knu Exp $
11
+ # $Id: abbrev.rb 11708 2007-02-12 23:01:19Z shyouhei $
12
+ =end
13
+
14
+ # Calculate the set of unique abbreviations for a given set of strings.
15
+ #
16
+ # require 'abbrev'
17
+ # require 'pp'
18
+ #
19
+ # pp Abbrev::abbrev(['ruby', 'rules']).sort
20
+ #
21
+ # <i>Generates:</i>
22
+ #
23
+ # [["rub", "ruby"],
24
+ # ["ruby", "ruby"],
25
+ # ["rul", "rules"],
26
+ # ["rule", "rules"],
27
+ # ["rules", "rules"]]
28
+ #
29
+ # Also adds an +abbrev+ method to class +Array+.
30
+
31
+ module Abbrev
32
+
33
+ # Given a set of strings, calculate the set of unambiguous
34
+ # abbreviations for those strings, and return a hash where the keys
35
+ # are all the possible abbreviations and the values are the full
36
+ # strings. Thus, given input of "car" and "cone", the keys pointing
37
+ # to "car" would be "ca" and "car", while those pointing to "cone"
38
+ # would be "co", "con", and "cone".
39
+ #
40
+ # The optional +pattern+ parameter is a pattern or a string. Only
41
+ # those input strings matching the pattern, or begging the string,
42
+ # are considered for inclusion in the output hash
43
+
44
+ def abbrev(words, pattern = nil)
45
+ table = {}
46
+ seen = Hash.new(0)
47
+
48
+ if pattern.is_a?(String)
49
+ pattern = /^#{Regexp.quote(pattern)}/ # regard as a prefix
50
+ end
51
+
52
+ words.each do |word|
53
+ next if (abbrev = word).empty?
54
+ while (len = abbrev.rindex(/[\w\W]\z/)) > 0
55
+ abbrev = word[0,len]
56
+
57
+ next if pattern && pattern !~ abbrev
58
+
59
+ case seen[abbrev] += 1
60
+ when 1
61
+ table[abbrev] = word
62
+ when 2
63
+ table.delete(abbrev)
64
+ else
65
+ break
66
+ end
67
+ end
68
+ end
69
+
70
+ words.each do |word|
71
+ next if pattern && pattern !~ word
72
+
73
+ table[word] = word
74
+ end
75
+
76
+ table
77
+ end
78
+
79
+ module_function :abbrev
80
+ end
81
+
82
+ class Array
83
+ # Calculates the set of unambiguous abbreviations for the strings in
84
+ # +self+. If passed a pattern or a string, only the strings matching
85
+ # the pattern or starting with the string are considered.
86
+ #
87
+ # %w{ car cone }.abbrev #=> { "ca" => "car", "car" => "car",
88
+ # "co" => "cone", "con" => cone",
89
+ # "cone" => "cone" }
90
+ def abbrev(pattern = nil)
91
+ Abbrev::abbrev(self, pattern)
92
+ end
93
+ end
94
+
95
+ if $0 == __FILE__
96
+ while line = gets
97
+ hash = line.split.abbrev
98
+
99
+ hash.sort.each do |k, v|
100
+ puts "#{k} => #{v}"
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,133 @@
1
+ #
2
+ # = base64.rb: methods for base64-encoding and -decoding stings
3
+ #
4
+ # Author:: Yukihiro Matsumoto
5
+ # Documentation:: Dave Thomas and Gavin Sinclair
6
+ #
7
+ # Until Ruby 1.8.1, these methods were defined at the top-level. Now
8
+ # they are in the Base64 module but included in the top-level, where
9
+ # their usage is deprecated.
10
+ #
11
+ # See Base64 for documentation.
12
+ #
13
+
14
+ require "kconv"
15
+
16
+
17
+ # The Base64 module provides for the encoding (#encode64) and decoding
18
+ # (#decode64) of binary data using a Base64 representation.
19
+ #
20
+ # The following particular features are also provided:
21
+ # - encode into lines of a given length (#b64encode)
22
+ # - decode the special format specified in RFC2047 for the
23
+ # representation of email headers (decode_b)
24
+ #
25
+ # == Example
26
+ #
27
+ # A simple encoding and decoding.
28
+ #
29
+ # require "base64"
30
+ #
31
+ # enc = Base64.encode64('Send reinforcements')
32
+ # # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
33
+ # plain = Base64.decode64(enc)
34
+ # # -> "Send reinforcements"
35
+ #
36
+ # The purpose of using base64 to encode data is that it translates any
37
+ # binary data into purely printable characters. It is specified in
38
+ # RFC 2045 (http://www.faqs.org/rfcs/rfc2045.html).
39
+
40
+ module Base64
41
+ module_function
42
+
43
+ # Returns the Base64-decoded version of +str+.
44
+ #
45
+ # require 'base64'
46
+ # str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
47
+ # 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
48
+ # 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
49
+ # puts Base64.decode64(str)
50
+ #
51
+ # <i>Generates:</i>
52
+ #
53
+ # This is line one
54
+ # This is line two
55
+ # This is line three
56
+ # And so on...
57
+
58
+ def decode64(str)
59
+ str.unpack("m")[0]
60
+ end
61
+
62
+
63
+ # Decodes text formatted using a subset of RFC2047 (the one used for
64
+ # mime-encoding mail headers).
65
+ #
66
+ # Only supports an encoding type of 'b' (base 64), and only supports
67
+ # the character sets ISO-2022-JP and SHIFT_JIS (so the only two
68
+ # encoded word sequences recognized are <tt>=?ISO-2022-JP?B?...=</tt> and
69
+ # <tt>=?SHIFT_JIS?B?...=</tt>). Recognition of these sequences is case
70
+ # insensitive.
71
+
72
+ def decode_b(str)
73
+ str.gsub!(/=\?ISO-2022-JP\?B\?([!->@-~]+)\?=/i) {
74
+ decode64($1)
75
+ }
76
+ str = Kconv::toeuc(str)
77
+ str.gsub!(/=\?SHIFT_JIS\?B\?([!->@-~]+)\?=/i) {
78
+ decode64($1)
79
+ }
80
+ str = Kconv::toeuc(str)
81
+ str.gsub!(/\n/, ' ')
82
+ str.gsub!(/\0/, '')
83
+ str
84
+ end
85
+
86
+ # Returns the Base64-encoded version of +str+.
87
+ #
88
+ # require 'base64'
89
+ # Base64.b64encode("Now is the time for all good coders\nto learn Ruby")
90
+ #
91
+ # <i>Generates:</i>
92
+ #
93
+ # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
94
+ # UnVieQ==
95
+
96
+ def encode64(bin)
97
+ [bin].pack("m")
98
+ end
99
+
100
+ # _Prints_ the Base64 encoded version of +bin+ (a +String+) in lines of
101
+ # +len+ (default 60) characters.
102
+ #
103
+ # require 'base64'
104
+ # data = "Now is the time for all good coders\nto learn Ruby"
105
+ # Base64.b64encode(data)
106
+ #
107
+ # <i>Generates:</i>
108
+ #
109
+ # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
110
+ # UnVieQ==
111
+
112
+ def b64encode(bin, len = 60)
113
+ encode64(bin).scan(/.{1,#{len}}/) do
114
+ print $&, "\n"
115
+ end
116
+ end
117
+
118
+
119
+ module Deprecated # :nodoc:
120
+ include Base64
121
+
122
+ for m in Base64.private_instance_methods(false)
123
+ module_eval %{
124
+ def #{m}(*args)
125
+ warn("\#{caller(1)[0]}: #{m} is deprecated; use Base64.#{m} instead")
126
+ super
127
+ end
128
+ }
129
+ end
130
+ end
131
+ end
132
+
133
+ include Base64::Deprecated
@@ -0,0 +1,572 @@
1
+ =begin
2
+ #
3
+ # benchmark.rb - a performance benchmarking library
4
+ #
5
+ # $Id: benchmark.rb 15425 2008-02-10 15:24:56Z naruse $
6
+ #
7
+ # Created by Gotoken (gotoken@notwork.org).
8
+ #
9
+ # Documentation by Gotoken (original RD), Lyle Johnson (RDoc conversion), and
10
+ # Gavin Sinclair (editing).
11
+ #
12
+ =end
13
+
14
+ # == Overview
15
+ #
16
+ # The Benchmark module provides methods for benchmarking Ruby code, giving
17
+ # detailed reports on the time taken for each task.
18
+ #
19
+
20
+ # The Benchmark module provides methods to measure and report the time
21
+ # used to execute Ruby code.
22
+ #
23
+ # * Measure the time to construct the string given by the expression
24
+ # <tt>"a"*1_000_000</tt>:
25
+ #
26
+ # require 'benchmark'
27
+ #
28
+ # puts Benchmark.measure { "a"*1_000_000 }
29
+ #
30
+ # On my machine (FreeBSD 3.2 on P5, 100MHz) this generates:
31
+ #
32
+ # 1.166667 0.050000 1.216667 ( 0.571355)
33
+ #
34
+ # This report shows the user CPU time, system CPU time, the sum of
35
+ # the user and system CPU times, and the elapsed real time. The unit
36
+ # of time is seconds.
37
+ #
38
+ # * Do some experiments sequentially using the #bm method:
39
+ #
40
+ # require 'benchmark'
41
+ #
42
+ # n = 50000
43
+ # Benchmark.bm do |x|
44
+ # x.report { for i in 1..n; a = "1"; end }
45
+ # x.report { n.times do ; a = "1"; end }
46
+ # x.report { 1.upto(n) do ; a = "1"; end }
47
+ # end
48
+ #
49
+ # The result:
50
+ #
51
+ # user system total real
52
+ # 1.033333 0.016667 1.016667 ( 0.492106)
53
+ # 1.483333 0.000000 1.483333 ( 0.694605)
54
+ # 1.516667 0.000000 1.516667 ( 0.711077)
55
+ #
56
+ # * Continuing the previous example, put a label in each report:
57
+ #
58
+ # require 'benchmark'
59
+ #
60
+ # n = 50000
61
+ # Benchmark.bm(7) do |x|
62
+ # x.report("for:") { for i in 1..n; a = "1"; end }
63
+ # x.report("times:") { n.times do ; a = "1"; end }
64
+ # x.report("upto:") { 1.upto(n) do ; a = "1"; end }
65
+ # end
66
+ #
67
+ # The result:
68
+ #
69
+ # user system total real
70
+ # for: 1.050000 0.000000 1.050000 ( 0.503462)
71
+ # times: 1.533333 0.016667 1.550000 ( 0.735473)
72
+ # upto: 1.500000 0.016667 1.516667 ( 0.711239)
73
+ #
74
+ #
75
+ # * The times for some benchmarks depend on the order in which items
76
+ # are run. These differences are due to the cost of memory
77
+ # allocation and garbage collection. To avoid these discrepancies,
78
+ # the #bmbm method is provided. For example, to compare ways to
79
+ # sort an array of floats:
80
+ #
81
+ # require 'benchmark'
82
+ #
83
+ # array = (1..1000000).map { rand }
84
+ #
85
+ # Benchmark.bmbm do |x|
86
+ # x.report("sort!") { array.dup.sort! }
87
+ # x.report("sort") { array.dup.sort }
88
+ # end
89
+ #
90
+ # The result:
91
+ #
92
+ # Rehearsal -----------------------------------------
93
+ # sort! 11.928000 0.010000 11.938000 ( 12.756000)
94
+ # sort 13.048000 0.020000 13.068000 ( 13.857000)
95
+ # ------------------------------- total: 25.006000sec
96
+ #
97
+ # user system total real
98
+ # sort! 12.959000 0.010000 12.969000 ( 13.793000)
99
+ # sort 12.007000 0.000000 12.007000 ( 12.791000)
100
+ #
101
+ #
102
+ # * Report statistics of sequential experiments with unique labels,
103
+ # using the #benchmark method:
104
+ #
105
+ # require 'benchmark'
106
+ #
107
+ # n = 50000
108
+ # Benchmark.benchmark(" "*7 + CAPTION, 7, FMTSTR, ">total:", ">avg:") do |x|
109
+ # tf = x.report("for:") { for i in 1..n; a = "1"; end }
110
+ # tt = x.report("times:") { n.times do ; a = "1"; end }
111
+ # tu = x.report("upto:") { 1.upto(n) do ; a = "1"; end }
112
+ # [tf+tt+tu, (tf+tt+tu)/3]
113
+ # end
114
+ #
115
+ # The result:
116
+ #
117
+ # user system total real
118
+ # for: 1.016667 0.016667 1.033333 ( 0.485749)
119
+ # times: 1.450000 0.016667 1.466667 ( 0.681367)
120
+ # upto: 1.533333 0.000000 1.533333 ( 0.722166)
121
+ # >total: 4.000000 0.033333 4.033333 ( 1.889282)
122
+ # >avg: 1.333333 0.011111 1.344444 ( 0.629761)
123
+
124
+ module Benchmark
125
+
126
+ BENCHMARK_VERSION = "2002-04-25" #:nodoc"
127
+
128
+ def Benchmark::times() # :nodoc:
129
+ Process::times()
130
+ end
131
+
132
+
133
+ # Invokes the block with a <tt>Benchmark::Report</tt> object, which
134
+ # may be used to collect and report on the results of individual
135
+ # benchmark tests. Reserves <i>label_width</i> leading spaces for
136
+ # labels on each line. Prints _caption_ at the top of the
137
+ # report, and uses _fmt_ to format each line.
138
+ # If the block returns an array of
139
+ # <tt>Benchmark::Tms</tt> objects, these will be used to format
140
+ # additional lines of output. If _label_ parameters are
141
+ # given, these are used to label these extra lines.
142
+ #
143
+ # _Note_: Other methods provide a simpler interface to this one, and are
144
+ # suitable for nearly all benchmarking requirements. See the examples in
145
+ # Benchmark, and the #bm and #bmbm methods.
146
+ #
147
+ # Example:
148
+ #
149
+ # require 'benchmark'
150
+ # include Benchmark # we need the CAPTION and FMTSTR constants
151
+ #
152
+ # n = 50000
153
+ # Benchmark.benchmark(" "*7 + CAPTION, 7, FMTSTR, ">total:", ">avg:") do |x|
154
+ # tf = x.report("for:") { for i in 1..n; a = "1"; end }
155
+ # tt = x.report("times:") { n.times do ; a = "1"; end }
156
+ # tu = x.report("upto:") { 1.upto(n) do ; a = "1"; end }
157
+ # [tf+tt+tu, (tf+tt+tu)/3]
158
+ # end
159
+ #
160
+ # <i>Generates:</i>
161
+ #
162
+ # user system total real
163
+ # for: 1.016667 0.016667 1.033333 ( 0.485749)
164
+ # times: 1.450000 0.016667 1.466667 ( 0.681367)
165
+ # upto: 1.533333 0.000000 1.533333 ( 0.722166)
166
+ # >total: 4.000000 0.033333 4.033333 ( 1.889282)
167
+ # >avg: 1.333333 0.011111 1.344444 ( 0.629761)
168
+ #
169
+
170
+ def benchmark(caption = "", label_width = nil, fmtstr = nil, *labels) # :yield: report
171
+ sync = STDOUT.sync
172
+ STDOUT.sync = true
173
+ label_width ||= 0
174
+ fmtstr ||= FMTSTR
175
+ raise ArgumentError, "no block" unless iterator?
176
+ print caption
177
+ results = yield(Report.new(label_width, fmtstr))
178
+ Array === results and results.grep(Tms).each {|t|
179
+ print((labels.shift || t.label || "").ljust(label_width),
180
+ t.format(fmtstr))
181
+ }
182
+ STDOUT.sync = sync
183
+ end
184
+
185
+
186
+ # A simple interface to the #benchmark method, #bm is generates sequential reports
187
+ # with labels. The parameters have the same meaning as for #benchmark.
188
+ #
189
+ # require 'benchmark'
190
+ #
191
+ # n = 50000
192
+ # Benchmark.bm(7) do |x|
193
+ # x.report("for:") { for i in 1..n; a = "1"; end }
194
+ # x.report("times:") { n.times do ; a = "1"; end }
195
+ # x.report("upto:") { 1.upto(n) do ; a = "1"; end }
196
+ # end
197
+ #
198
+ # <i>Generates:</i>
199
+ #
200
+ # user system total real
201
+ # for: 1.050000 0.000000 1.050000 ( 0.503462)
202
+ # times: 1.533333 0.016667 1.550000 ( 0.735473)
203
+ # upto: 1.500000 0.016667 1.516667 ( 0.711239)
204
+ #
205
+
206
+ def bm(label_width = 0, *labels, &blk) # :yield: report
207
+ benchmark(" "*label_width + CAPTION, label_width, FMTSTR, *labels, &blk)
208
+ end
209
+
210
+
211
+ # Sometimes benchmark results are skewed because code executed
212
+ # earlier encounters different garbage collection overheads than
213
+ # that run later. #bmbm attempts to minimize this effect by running
214
+ # the tests twice, the first time as a rehearsal in order to get the
215
+ # runtime environment stable, the second time for
216
+ # real. <tt>GC.start</tt> is executed before the start of each of
217
+ # the real timings; the cost of this is not included in the
218
+ # timings. In reality, though, there's only so much that #bmbm can
219
+ # do, and the results are not guaranteed to be isolated from garbage
220
+ # collection and other effects.
221
+ #
222
+ # Because #bmbm takes two passes through the tests, it can
223
+ # calculate the required label width.
224
+ #
225
+ # require 'benchmark'
226
+ #
227
+ # array = (1..1000000).map { rand }
228
+ #
229
+ # Benchmark.bmbm do |x|
230
+ # x.report("sort!") { array.dup.sort! }
231
+ # x.report("sort") { array.dup.sort }
232
+ # end
233
+ #
234
+ # <i>Generates:</i>
235
+ #
236
+ # Rehearsal -----------------------------------------
237
+ # sort! 11.928000 0.010000 11.938000 ( 12.756000)
238
+ # sort 13.048000 0.020000 13.068000 ( 13.857000)
239
+ # ------------------------------- total: 25.006000sec
240
+ #
241
+ # user system total real
242
+ # sort! 12.959000 0.010000 12.969000 ( 13.793000)
243
+ # sort 12.007000 0.000000 12.007000 ( 12.791000)
244
+ #
245
+ # #bmbm yields a Benchmark::Job object and returns an array of
246
+ # Benchmark::Tms objects.
247
+ #
248
+ def bmbm(width = 0, &blk) # :yield: job
249
+ job = Job.new(width)
250
+ yield(job)
251
+ width = job.width
252
+ sync = STDOUT.sync
253
+ STDOUT.sync = true
254
+
255
+ # rehearsal
256
+ print "Rehearsal "
257
+ puts '-'*(width+CAPTION.length - "Rehearsal ".length)
258
+ list = []
259
+ job.list.each{|label,item|
260
+ print(label.ljust(width))
261
+ res = Benchmark::measure(&item)
262
+ print res.format()
263
+ list.push res
264
+ }
265
+ sum = Tms.new; list.each{|i| sum += i}
266
+ ets = sum.format("total: %tsec")
267
+ printf("%s %s\n\n",
268
+ "-"*(width+CAPTION.length-ets.length-1), ets)
269
+
270
+ # take
271
+ print ' '*width, CAPTION
272
+ list = []
273
+ ary = []
274
+ job.list.each{|label,item|
275
+ GC::start
276
+ print label.ljust(width)
277
+ res = Benchmark::measure(&item)
278
+ print res.format()
279
+ ary.push res
280
+ list.push [label, res]
281
+ }
282
+
283
+ STDOUT.sync = sync
284
+ ary
285
+ end
286
+
287
+ #
288
+ # Returns the time used to execute the given block as a
289
+ # Benchmark::Tms object.
290
+ #
291
+ def measure(label = "") # :yield:
292
+ t0, r0 = Benchmark.times, Time.now
293
+ yield
294
+ t1, r1 = Benchmark.times, Time.now
295
+ Benchmark::Tms.new(t1.utime - t0.utime,
296
+ t1.stime - t0.stime,
297
+ t1.cutime - t0.cutime,
298
+ t1.cstime - t0.cstime,
299
+ r1.to_f - r0.to_f,
300
+ label)
301
+ end
302
+
303
+ #
304
+ # Returns the elapsed real time used to execute the given block.
305
+ #
306
+ def realtime(&blk) # :yield:
307
+ r0 = Time.now
308
+ yield
309
+ r1 = Time.now
310
+ r1.to_f - r0.to_f
311
+ end
312
+
313
+
314
+
315
+ #
316
+ # A Job is a sequence of labelled blocks to be processed by the
317
+ # Benchmark.bmbm method. It is of little direct interest to the user.
318
+ #
319
+ class Job # :nodoc:
320
+ #
321
+ # Returns an initialized Job instance.
322
+ # Usually, one doesn't call this method directly, as new
323
+ # Job objects are created by the #bmbm method.
324
+ # _width_ is a initial value for the label offset used in formatting;
325
+ # the #bmbm method passes its _width_ argument to this constructor.
326
+ #
327
+ def initialize(width)
328
+ @width = width
329
+ @list = []
330
+ end
331
+
332
+ #
333
+ # Registers the given label and block pair in the job list.
334
+ #
335
+ def item(label = "", &blk) # :yield:
336
+ raise ArgumentError, "no block" unless block_given?
337
+ label += ' '
338
+ w = label.length
339
+ @width = w if @width < w
340
+ @list.push [label, blk]
341
+ self
342
+ end
343
+
344
+ alias report item
345
+
346
+ # An array of 2-element arrays, consisting of label and block pairs.
347
+ attr_reader :list
348
+
349
+ # Length of the widest label in the #list, plus one.
350
+ attr_reader :width
351
+ end
352
+
353
+ module_function :benchmark, :measure, :realtime, :bm, :bmbm
354
+
355
+
356
+
357
+ #
358
+ # This class is used by the Benchmark.benchmark and Benchmark.bm methods.
359
+ # It is of little direct interest to the user.
360
+ #
361
+ class Report # :nodoc:
362
+ #
363
+ # Returns an initialized Report instance.
364
+ # Usually, one doesn't call this method directly, as new
365
+ # Report objects are created by the #benchmark and #bm methods.
366
+ # _width_ and _fmtstr_ are the label offset and
367
+ # format string used by Tms#format.
368
+ #
369
+ def initialize(width = 0, fmtstr = nil)
370
+ @width, @fmtstr = width, fmtstr
371
+ end
372
+
373
+ #
374
+ # Prints the _label_ and measured time for the block,
375
+ # formatted by _fmt_. See Tms#format for the
376
+ # formatting rules.
377
+ #
378
+ def item(label = "", *fmt, &blk) # :yield:
379
+ print label.ljust(@width)
380
+ res = Benchmark::measure(&blk)
381
+ print res.format(@fmtstr, *fmt)
382
+ res
383
+ end
384
+
385
+ alias report item
386
+ end
387
+
388
+
389
+
390
+ #
391
+ # A data object, representing the times associated with a benchmark
392
+ # measurement.
393
+ #
394
+ class Tms
395
+ CAPTION = " user system total real\n"
396
+ FMTSTR = "%10.6u %10.6y %10.6t %10.6r\n"
397
+
398
+ # User CPU time
399
+ attr_reader :utime
400
+
401
+ # System CPU time
402
+ attr_reader :stime
403
+
404
+ # User CPU time of children
405
+ attr_reader :cutime
406
+
407
+ # System CPU time of children
408
+ attr_reader :cstime
409
+
410
+ # Elapsed real time
411
+ attr_reader :real
412
+
413
+ # Total time, that is _utime_ + _stime_ + _cutime_ + _cstime_
414
+ attr_reader :total
415
+
416
+ # Label
417
+ attr_reader :label
418
+
419
+ #
420
+ # Returns an initialized Tms object which has
421
+ # _u_ as the user CPU time, _s_ as the system CPU time,
422
+ # _cu_ as the children's user CPU time, _cs_ as the children's
423
+ # system CPU time, _real_ as the elapsed real time and _l_
424
+ # as the label.
425
+ #
426
+ def initialize(u = 0.0, s = 0.0, cu = 0.0, cs = 0.0, real = 0.0, l = nil)
427
+ @utime, @stime, @cutime, @cstime, @real, @label = u, s, cu, cs, real, l
428
+ @total = @utime + @stime + @cutime + @cstime
429
+ end
430
+
431
+ #
432
+ # Returns a new Tms object whose times are the sum of the times for this
433
+ # Tms object, plus the time required to execute the code block (_blk_).
434
+ #
435
+ def add(&blk) # :yield:
436
+ self + Benchmark::measure(&blk)
437
+ end
438
+
439
+ #
440
+ # An in-place version of #add.
441
+ #
442
+ def add!
443
+ t = Benchmark::measure(&blk)
444
+ @utime = utime + t.utime
445
+ @stime = stime + t.stime
446
+ @cutime = cutime + t.cutime
447
+ @cstime = cstime + t.cstime
448
+ @real = real + t.real
449
+ self
450
+ end
451
+
452
+ #
453
+ # Returns a new Tms object obtained by memberwise summation
454
+ # of the individual times for this Tms object with those of the other
455
+ # Tms object.
456
+ # This method and #/() are useful for taking statistics.
457
+ #
458
+ def +(other); memberwise(:+, other) end
459
+
460
+ #
461
+ # Returns a new Tms object obtained by memberwise subtraction
462
+ # of the individual times for the other Tms object from those of this
463
+ # Tms object.
464
+ #
465
+ def -(other); memberwise(:-, other) end
466
+
467
+ #
468
+ # Returns a new Tms object obtained by memberwise multiplication
469
+ # of the individual times for this Tms object by _x_.
470
+ #
471
+ def *(x); memberwise(:*, x) end
472
+
473
+ #
474
+ # Returns a new Tms object obtained by memberwise division
475
+ # of the individual times for this Tms object by _x_.
476
+ # This method and #+() are useful for taking statistics.
477
+ #
478
+ def /(x); memberwise(:/, x) end
479
+
480
+ #
481
+ # Returns the contents of this Tms object as
482
+ # a formatted string, according to a format string
483
+ # like that passed to Kernel.format. In addition, #format
484
+ # accepts the following extensions:
485
+ #
486
+ # <tt>%u</tt>:: Replaced by the user CPU time, as reported by Tms#utime.
487
+ # <tt>%y</tt>:: Replaced by the system CPU time, as reported by #stime (Mnemonic: y of "s*y*stem")
488
+ # <tt>%U</tt>:: Replaced by the children's user CPU time, as reported by Tms#cutime
489
+ # <tt>%Y</tt>:: Replaced by the children's system CPU time, as reported by Tms#cstime
490
+ # <tt>%t</tt>:: Replaced by the total CPU time, as reported by Tms#total
491
+ # <tt>%r</tt>:: Replaced by the elapsed real time, as reported by Tms#real
492
+ # <tt>%n</tt>:: Replaced by the label string, as reported by Tms#label (Mnemonic: n of "*n*ame")
493
+ #
494
+ # If _fmtstr_ is not given, FMTSTR is used as default value, detailing the
495
+ # user, system and real elapsed time.
496
+ #
497
+ def format(arg0 = nil, *args)
498
+ fmtstr = (arg0 || FMTSTR).dup
499
+ fmtstr.gsub!(/(%[-+\.\d]*)n/){"#{$1}s" % label}
500
+ fmtstr.gsub!(/(%[-+\.\d]*)u/){"#{$1}f" % utime}
501
+ fmtstr.gsub!(/(%[-+\.\d]*)y/){"#{$1}f" % stime}
502
+ fmtstr.gsub!(/(%[-+\.\d]*)U/){"#{$1}f" % cutime}
503
+ fmtstr.gsub!(/(%[-+\.\d]*)Y/){"#{$1}f" % cstime}
504
+ fmtstr.gsub!(/(%[-+\.\d]*)t/){"#{$1}f" % total}
505
+ fmtstr.gsub!(/(%[-+\.\d]*)r/){"(#{$1}f)" % real}
506
+ arg0 ? Kernel::format(fmtstr, *args) : fmtstr
507
+ end
508
+
509
+ #
510
+ # Same as #format.
511
+ #
512
+ def to_s
513
+ format
514
+ end
515
+
516
+ #
517
+ # Returns a new 6-element array, consisting of the
518
+ # label, user CPU time, system CPU time, children's
519
+ # user CPU time, children's system CPU time and elapsed
520
+ # real time.
521
+ #
522
+ def to_a
523
+ [@label, @utime, @stime, @cutime, @cstime, @real]
524
+ end
525
+
526
+ protected
527
+ def memberwise(op, x)
528
+ case x
529
+ when Benchmark::Tms
530
+ Benchmark::Tms.new(utime.__send__(op, x.utime),
531
+ stime.__send__(op, x.stime),
532
+ cutime.__send__(op, x.cutime),
533
+ cstime.__send__(op, x.cstime),
534
+ real.__send__(op, x.real)
535
+ )
536
+ else
537
+ Benchmark::Tms.new(utime.__send__(op, x),
538
+ stime.__send__(op, x),
539
+ cutime.__send__(op, x),
540
+ cstime.__send__(op, x),
541
+ real.__send__(op, x)
542
+ )
543
+ end
544
+ end
545
+ end
546
+
547
+ # The default caption string (heading above the output times).
548
+ CAPTION = Benchmark::Tms::CAPTION
549
+
550
+ # The default format string used to display times. See also Benchmark::Tms#format.
551
+ FMTSTR = Benchmark::Tms::FMTSTR
552
+ end
553
+
554
+ if __FILE__ == $0
555
+ include Benchmark
556
+
557
+ n = ARGV[0].to_i.nonzero? || 50000
558
+ puts %Q([#{n} times iterations of `a = "1"'])
559
+ benchmark(" " + CAPTION, 7, FMTSTR) do |x|
560
+ x.report("for:") {for i in 1..n; a = "1"; end} # Benchmark::measure
561
+ x.report("times:") {n.times do ; a = "1"; end}
562
+ x.report("upto:") {1.upto(n) do ; a = "1"; end}
563
+ end
564
+
565
+ benchmark do
566
+ [
567
+ measure{for i in 1..n; a = "1"; end}, # Benchmark::measure
568
+ measure{n.times do ; a = "1"; end},
569
+ measure{1.upto(n) do ; a = "1"; end}
570
+ ]
571
+ end
572
+ end