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,198 @@
1
+ #
2
+ # = uri/ftp.rb
3
+ #
4
+ # Author:: Akira Yamada <akira@ruby-lang.org>
5
+ # License:: You can redistribute it and/or modify it under the same term as Ruby.
6
+ # Revision:: $Id: ftp.rb 16085 2008-04-19 11:56:22Z knu $
7
+ #
8
+
9
+ require 'uri/generic'
10
+
11
+ module URI
12
+
13
+ #
14
+ # FTP URI syntax is defined by RFC1738 section 3.2.
15
+ #
16
+ class FTP < Generic
17
+ DEFAULT_PORT = 21
18
+
19
+ COMPONENT = [
20
+ :scheme,
21
+ :userinfo, :host, :port,
22
+ :path, :typecode
23
+ ].freeze
24
+ #
25
+ # Typecode is "a", "i" or "d".
26
+ #
27
+ # * "a" indicates a text file (the FTP command was ASCII)
28
+ # * "i" indicates a binary file (FTP command IMAGE)
29
+ # * "d" indicates the contents of a directory should be displayed
30
+ #
31
+ TYPECODE = ['a', 'i', 'd'].freeze
32
+ TYPECODE_PREFIX = ';type='.freeze
33
+
34
+ def self.new2(user, password, host, port, path,
35
+ typecode = nil, arg_check = true)
36
+ typecode = nil if typecode.size == 0
37
+ if typecode && !TYPECODE.include?(typecode)
38
+ raise ArgumentError,
39
+ "bad typecode is specified: #{typecode}"
40
+ end
41
+
42
+ # do escape
43
+
44
+ self.new('ftp',
45
+ [user, password],
46
+ host, port, nil,
47
+ typecode ? path + TYPECODE_PREFIX + typecode : path,
48
+ nil, nil, nil, arg_check)
49
+ end
50
+
51
+ #
52
+ # == Description
53
+ #
54
+ # Creates a new URI::FTP object from components, with syntax checking.
55
+ #
56
+ # The components accepted are +userinfo+, +host+, +port+, +path+ and
57
+ # +typecode+.
58
+ #
59
+ # The components should be provided either as an Array, or as a Hash
60
+ # with keys formed by preceding the component names with a colon.
61
+ #
62
+ # If an Array is used, the components must be passed in the order
63
+ # [userinfo, host, port, path, typecode]
64
+ #
65
+ # If the path supplied is absolute, it will be escaped in order to
66
+ # make it absolute in the URI. Examples:
67
+ #
68
+ # require 'uri'
69
+ #
70
+ # uri = URI::FTP.build(['user:password', 'ftp.example.com', nil,
71
+ # '/path/file.> zip', 'i'])
72
+ # puts uri.to_s -> ftp://user:password@ftp.example.com/%2Fpath/file.zip;type=a
73
+ #
74
+ # uri2 = URI::FTP.build({:host => 'ftp.example.com',
75
+ # :path => 'ruby/src'})
76
+ # puts uri2.to_s -> ftp://ftp.example.com/ruby/src
77
+ #
78
+ def self.build(args)
79
+
80
+ # Fix the incoming path to be generic URL syntax
81
+ # FTP path -> URL path
82
+ # foo/bar /foo/bar
83
+ # /foo/bar /%2Ffoo/bar
84
+ #
85
+ if args.kind_of?(Array)
86
+ args[3] = '/' + args[3].sub(/^\//, '%2F')
87
+ else
88
+ args[:path] = '/' + args[:path].sub(/^\//, '%2F')
89
+ end
90
+
91
+ tmp = Util::make_components_hash(self, args)
92
+
93
+ if tmp[:typecode]
94
+ if tmp[:typecode].size == 1
95
+ tmp[:typecode] = TYPECODE_PREFIX + tmp[:typecode]
96
+ end
97
+ tmp[:path] << tmp[:typecode]
98
+ end
99
+
100
+ return super(tmp)
101
+ end
102
+
103
+ #
104
+ # == Description
105
+ #
106
+ # Creates a new URI::FTP object from generic URL components with no
107
+ # syntax checking.
108
+ #
109
+ # Unlike build(), this method does not escape the path component as
110
+ # required by RFC1738; instead it is treated as per RFC2396.
111
+ #
112
+ # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,
113
+ # +opaque+, +query+ and +fragment+, in that order.
114
+ #
115
+ def initialize(*arg)
116
+ super(*arg)
117
+ @typecode = nil
118
+ tmp = @path.index(TYPECODE_PREFIX)
119
+ if tmp
120
+ typecode = @path[tmp + TYPECODE_PREFIX.size..-1]
121
+ self.set_path(@path[0..tmp - 1])
122
+
123
+ if arg[-1]
124
+ self.typecode = typecode
125
+ else
126
+ self.set_typecode(typecode)
127
+ end
128
+ end
129
+ end
130
+ attr_reader :typecode
131
+
132
+ def check_typecode(v)
133
+ if TYPECODE.include?(v)
134
+ return true
135
+ else
136
+ raise InvalidComponentError,
137
+ "bad typecode(expected #{TYPECODE.join(', ')}): #{v}"
138
+ end
139
+ end
140
+ private :check_typecode
141
+
142
+ def set_typecode(v)
143
+ @typecode = v
144
+ end
145
+ protected :set_typecode
146
+
147
+ def typecode=(typecode)
148
+ check_typecode(typecode)
149
+ set_typecode(typecode)
150
+ typecode
151
+ end
152
+
153
+ def merge(oth) # :nodoc:
154
+ tmp = super(oth)
155
+ if self != tmp
156
+ tmp.set_typecode(oth.typecode)
157
+ end
158
+
159
+ return tmp
160
+ end
161
+
162
+ # Returns the path from an FTP URI.
163
+ #
164
+ # RFC 1738 specifically states that the path for an FTP URI does not
165
+ # include the / which separates the URI path from the URI host. Example:
166
+ #
167
+ # ftp://ftp.example.com/pub/ruby
168
+ #
169
+ # The above URI indicates that the client should connect to
170
+ # ftp.example.com then cd pub/ruby from the initial login directory.
171
+ #
172
+ # If you want to cd to an absolute directory, you must include an
173
+ # escaped / (%2F) in the path. Example:
174
+ #
175
+ # ftp://ftp.example.com/%2Fpub/ruby
176
+ #
177
+ # This method will then return "/pub/ruby"
178
+ #
179
+ def path
180
+ return @path.sub(/^\//,'').sub(/^%2F/i,'/')
181
+ end
182
+
183
+ def to_s
184
+ save_path = nil
185
+ if @typecode
186
+ save_path = @path
187
+ @path = @path + TYPECODE_PREFIX + @typecode
188
+ end
189
+ str = super
190
+ if @typecode
191
+ @path = save_path
192
+ end
193
+
194
+ return str
195
+ end
196
+ end
197
+ @@schemes['FTP'] = FTP
198
+ end
@@ -0,0 +1,1122 @@
1
+ #
2
+ # = uri/generic.rb
3
+ #
4
+ # Author:: Akira Yamada <akira@ruby-lang.org>
5
+ # License:: You can redistribute it and/or modify it under the same term as Ruby.
6
+ # Revision:: $Id: generic.rb 16085 2008-04-19 11:56:22Z knu $
7
+ #
8
+
9
+ require 'uri/common'
10
+
11
+ module URI
12
+
13
+ #
14
+ # Base class for all URI classes.
15
+ # Implements generic URI syntax as per RFC 2396.
16
+ #
17
+ class Generic
18
+ include URI
19
+ include REGEXP
20
+
21
+ DEFAULT_PORT = nil
22
+
23
+ #
24
+ # Returns default port
25
+ #
26
+ def self.default_port
27
+ self::DEFAULT_PORT
28
+ end
29
+
30
+ def default_port
31
+ self.class.default_port
32
+ end
33
+
34
+ COMPONENT = [
35
+ :scheme,
36
+ :userinfo, :host, :port, :registry,
37
+ :path, :opaque,
38
+ :query,
39
+ :fragment
40
+ ].freeze
41
+
42
+ #
43
+ # Components of the URI in the order.
44
+ #
45
+ def self.component
46
+ self::COMPONENT
47
+ end
48
+
49
+ USE_REGISTRY = false
50
+
51
+ #
52
+ # DOC: FIXME!
53
+ #
54
+ def self.use_registry
55
+ self::USE_REGISTRY
56
+ end
57
+
58
+ #
59
+ # == Synopsis
60
+ #
61
+ # See #new
62
+ #
63
+ # == Description
64
+ #
65
+ # At first, tries to create a new URI::Generic instance using
66
+ # URI::Generic::build. But, if exception URI::InvalidComponentError is raised,
67
+ # then it URI::Escape.escape all URI components and tries again.
68
+ #
69
+ #
70
+ def self.build2(args)
71
+ begin
72
+ return self.build(args)
73
+ rescue InvalidComponentError
74
+ if args.kind_of?(Array)
75
+ return self.build(args.collect{|x|
76
+ if x
77
+ URI.escape(x)
78
+ else
79
+ x
80
+ end
81
+ })
82
+ elsif args.kind_of?(Hash)
83
+ tmp = {}
84
+ args.each do |key, value|
85
+ tmp[key] = if value
86
+ URI.escape(value)
87
+ else
88
+ value
89
+ end
90
+ end
91
+ return self.build(tmp)
92
+ end
93
+ end
94
+ end
95
+
96
+ #
97
+ # == Synopsis
98
+ #
99
+ # See #new
100
+ #
101
+ # == Description
102
+ #
103
+ # Creates a new URI::Generic instance from components of URI::Generic
104
+ # with check. Components are: scheme, userinfo, host, port, registry, path,
105
+ # opaque, query and fragment. You can provide arguments either by an Array or a Hash.
106
+ # See #new for hash keys to use or for order of array items.
107
+ #
108
+ def self.build(args)
109
+ if args.kind_of?(Array) &&
110
+ args.size == ::URI::Generic::COMPONENT.size
111
+ tmp = args
112
+ elsif args.kind_of?(Hash)
113
+ tmp = ::URI::Generic::COMPONENT.collect do |c|
114
+ if args.include?(c)
115
+ args[c]
116
+ else
117
+ nil
118
+ end
119
+ end
120
+ else
121
+ raise ArgumentError,
122
+ "expected Array of or Hash of components of #{self.class} (#{self.class.component.join(', ')})"
123
+ end
124
+
125
+ tmp << true
126
+ return self.new(*tmp)
127
+ end
128
+ #
129
+ # == Args
130
+ #
131
+ # +scheme+::
132
+ # Protocol scheme, i.e. 'http','ftp','mailto' and so on.
133
+ # +userinfo+::
134
+ # User name and password, i.e. 'sdmitry:bla'
135
+ # +host+::
136
+ # Server host name
137
+ # +port+::
138
+ # Server port
139
+ # +registry+::
140
+ # DOC: FIXME!
141
+ # +path+::
142
+ # Path on server
143
+ # +opaque+::
144
+ # DOC: FIXME!
145
+ # +query+::
146
+ # Query data
147
+ # +fragment+::
148
+ # A part of URI after '#' sign
149
+ # +arg_check+::
150
+ # Check arguments [false by default]
151
+ #
152
+ # == Description
153
+ #
154
+ # Creates a new URI::Generic instance from ``generic'' components without check.
155
+ #
156
+ def initialize(scheme,
157
+ userinfo, host, port, registry,
158
+ path, opaque,
159
+ query,
160
+ fragment,
161
+ arg_check = false)
162
+ @scheme = nil
163
+ @user = nil
164
+ @password = nil
165
+ @host = nil
166
+ @port = nil
167
+ @path = nil
168
+ @query = nil
169
+ @opaque = nil
170
+ @registry = nil
171
+ @fragment = nil
172
+
173
+ if arg_check
174
+ self.scheme = scheme
175
+ self.userinfo = userinfo
176
+ self.host = host
177
+ self.port = port
178
+ self.path = path
179
+ self.query = query
180
+ self.opaque = opaque
181
+ self.registry = registry
182
+ self.fragment = fragment
183
+ else
184
+ self.set_scheme(scheme)
185
+ self.set_userinfo(userinfo)
186
+ self.set_host(host)
187
+ self.set_port(port)
188
+ self.set_path(path)
189
+ self.set_query(query)
190
+ self.set_opaque(opaque)
191
+ self.set_registry(registry)
192
+ self.set_fragment(fragment)
193
+ end
194
+ if @registry && !self.class.use_registry
195
+ raise InvalidURIError,
196
+ "the scheme #{@scheme} does not accept registry part: #{@registry} (or bad hostname?)"
197
+ end
198
+
199
+ @scheme.freeze if @scheme
200
+ self.set_path('') if !@path && !@opaque # (see RFC2396 Section 5.2)
201
+ self.set_port(self.default_port) if self.default_port && !@port
202
+ end
203
+ attr_reader :scheme
204
+ attr_reader :host
205
+ attr_reader :port
206
+ attr_reader :registry
207
+ attr_reader :path
208
+ attr_reader :query
209
+ attr_reader :opaque
210
+ attr_reader :fragment
211
+
212
+ # replace self by other URI object
213
+ def replace!(oth)
214
+ if self.class != oth.class
215
+ raise ArgumentError, "expected #{self.class} object"
216
+ end
217
+
218
+ component.each do |c|
219
+ self.__send__("#{c}=", oth.__send__(c))
220
+ end
221
+ end
222
+ private :replace!
223
+
224
+ def component
225
+ self.class.component
226
+ end
227
+
228
+ def check_scheme(v)
229
+ if v && SCHEME !~ v
230
+ raise InvalidComponentError,
231
+ "bad component(expected scheme component): #{v}"
232
+ end
233
+
234
+ return true
235
+ end
236
+ private :check_scheme
237
+
238
+ def set_scheme(v)
239
+ @scheme = v
240
+ end
241
+ protected :set_scheme
242
+
243
+ def scheme=(v)
244
+ check_scheme(v)
245
+ set_scheme(v)
246
+ v
247
+ end
248
+
249
+ def check_userinfo(user, password = nil)
250
+ if !password
251
+ user, password = split_userinfo(user)
252
+ end
253
+ check_user(user)
254
+ check_password(password, user)
255
+
256
+ return true
257
+ end
258
+ private :check_userinfo
259
+
260
+ def check_user(v)
261
+ if @registry || @opaque
262
+ raise InvalidURIError,
263
+ "can not set user with registry or opaque"
264
+ end
265
+
266
+ return v unless v
267
+
268
+ if USERINFO !~ v
269
+ raise InvalidComponentError,
270
+ "bad component(expected userinfo component or user component): #{v}"
271
+ end
272
+
273
+ return true
274
+ end
275
+ private :check_user
276
+
277
+ def check_password(v, user = @user)
278
+ if @registry || @opaque
279
+ raise InvalidURIError,
280
+ "can not set password with registry or opaque"
281
+ end
282
+ return v unless v
283
+
284
+ if !user
285
+ raise InvalidURIError,
286
+ "password component depends user component"
287
+ end
288
+
289
+ if USERINFO !~ v
290
+ raise InvalidComponentError,
291
+ "bad component(expected user component): #{v}"
292
+ end
293
+
294
+ return true
295
+ end
296
+ private :check_password
297
+
298
+ #
299
+ # Sets userinfo, argument is string like 'name:pass'
300
+ #
301
+ def userinfo=(userinfo)
302
+ if userinfo.nil?
303
+ return nil
304
+ end
305
+ check_userinfo(*userinfo)
306
+ set_userinfo(*userinfo)
307
+ # returns userinfo
308
+ end
309
+
310
+ def user=(user)
311
+ check_user(user)
312
+ set_user(user)
313
+ # returns user
314
+ end
315
+
316
+ def password=(password)
317
+ check_password(password)
318
+ set_password(password)
319
+ # returns password
320
+ end
321
+
322
+ def set_userinfo(user, password = nil)
323
+ unless password
324
+ user, password = split_userinfo(user)
325
+ end
326
+ @user = user
327
+ @password = password if password
328
+
329
+ [@user, @password]
330
+ end
331
+ protected :set_userinfo
332
+
333
+ def set_user(v)
334
+ set_userinfo(v, @password)
335
+ v
336
+ end
337
+ protected :set_user
338
+
339
+ def set_password(v)
340
+ @password = v
341
+ # returns v
342
+ end
343
+ protected :set_password
344
+
345
+ def split_userinfo(ui)
346
+ return nil, nil unless ui
347
+ user, password = ui.split(/:/, 2)
348
+
349
+ return user, password
350
+ end
351
+ private :split_userinfo
352
+
353
+ def escape_userpass(v)
354
+ v = URI.escape(v, /[@:\/]/o) # RFC 1738 section 3.1 #/
355
+ end
356
+ private :escape_userpass
357
+
358
+ def userinfo
359
+ if @user.nil?
360
+ nil
361
+ elsif @password.nil?
362
+ @user
363
+ else
364
+ @user + ':' + @password
365
+ end
366
+ end
367
+
368
+ def user
369
+ @user
370
+ end
371
+
372
+ def password
373
+ @password
374
+ end
375
+
376
+ def check_host(v)
377
+ return v unless v
378
+
379
+ if @registry || @opaque
380
+ raise InvalidURIError,
381
+ "can not set host with registry or opaque"
382
+ elsif HOST !~ v
383
+ raise InvalidComponentError,
384
+ "bad component(expected host component): #{v}"
385
+ end
386
+
387
+ return true
388
+ end
389
+ private :check_host
390
+
391
+ def set_host(v)
392
+ @host = v
393
+ end
394
+ protected :set_host
395
+
396
+ def host=(v)
397
+ check_host(v)
398
+ set_host(v)
399
+ v
400
+ end
401
+
402
+ def check_port(v)
403
+ return v unless v
404
+
405
+ if @registry || @opaque
406
+ raise InvalidURIError,
407
+ "can not set port with registry or opaque"
408
+ elsif !v.kind_of?(Fixnum) && PORT !~ v
409
+ raise InvalidComponentError,
410
+ "bad component(expected port component): #{v}"
411
+ end
412
+
413
+ return true
414
+ end
415
+ private :check_port
416
+
417
+ def set_port(v)
418
+ unless !v || v.kind_of?(Fixnum)
419
+ if v.empty?
420
+ v = nil
421
+ else
422
+ v = v.to_i
423
+ end
424
+ end
425
+ @port = v
426
+ end
427
+ protected :set_port
428
+
429
+ def port=(v)
430
+ check_port(v)
431
+ set_port(v)
432
+ port
433
+ end
434
+
435
+ def check_registry(v)
436
+ return v unless v
437
+
438
+ # raise if both server and registry are not nil, because:
439
+ # authority = server | reg_name
440
+ # server = [ [ userinfo "@" ] hostport ]
441
+ if @host || @port || @user # userinfo = @user + ':' + @password
442
+ raise InvalidURIError,
443
+ "can not set registry with host, port, or userinfo"
444
+ elsif v && REGISTRY !~ v
445
+ raise InvalidComponentError,
446
+ "bad component(expected registry component): #{v}"
447
+ end
448
+
449
+ return true
450
+ end
451
+ private :check_registry
452
+
453
+ def set_registry(v)
454
+ @registry = v
455
+ end
456
+ protected :set_registry
457
+
458
+ def registry=(v)
459
+ check_registry(v)
460
+ set_registry(v)
461
+ v
462
+ end
463
+
464
+ def check_path(v)
465
+ # raise if both hier and opaque are not nil, because:
466
+ # absoluteURI = scheme ":" ( hier_part | opaque_part )
467
+ # hier_part = ( net_path | abs_path ) [ "?" query ]
468
+ if v && @opaque
469
+ raise InvalidURIError,
470
+ "path conflicts with opaque"
471
+ end
472
+
473
+ if @scheme
474
+ if v && v != '' && ABS_PATH !~ v
475
+ raise InvalidComponentError,
476
+ "bad component(expected absolute path component): #{v}"
477
+ end
478
+ else
479
+ if v && v != '' && ABS_PATH !~ v && REL_PATH !~ v
480
+ raise InvalidComponentError,
481
+ "bad component(expected relative path component): #{v}"
482
+ end
483
+ end
484
+
485
+ return true
486
+ end
487
+ private :check_path
488
+
489
+ def set_path(v)
490
+ @path = v
491
+ end
492
+ protected :set_path
493
+
494
+ def path=(v)
495
+ check_path(v)
496
+ set_path(v)
497
+ v
498
+ end
499
+
500
+ def check_query(v)
501
+ return v unless v
502
+
503
+ # raise if both hier and opaque are not nil, because:
504
+ # absoluteURI = scheme ":" ( hier_part | opaque_part )
505
+ # hier_part = ( net_path | abs_path ) [ "?" query ]
506
+ if @opaque
507
+ raise InvalidURIError,
508
+ "query conflicts with opaque"
509
+ end
510
+
511
+ if v && v != '' && QUERY !~ v
512
+ raise InvalidComponentError,
513
+ "bad component(expected query component): #{v}"
514
+ end
515
+
516
+ return true
517
+ end
518
+ private :check_query
519
+
520
+ def set_query(v)
521
+ @query = v
522
+ end
523
+ protected :set_query
524
+
525
+ def query=(v)
526
+ check_query(v)
527
+ set_query(v)
528
+ v
529
+ end
530
+
531
+ def check_opaque(v)
532
+ return v unless v
533
+
534
+ # raise if both hier and opaque are not nil, because:
535
+ # absoluteURI = scheme ":" ( hier_part | opaque_part )
536
+ # hier_part = ( net_path | abs_path ) [ "?" query ]
537
+ if @host || @port || @user || @path # userinfo = @user + ':' + @password
538
+ raise InvalidURIError,
539
+ "can not set opaque with host, port, userinfo or path"
540
+ elsif v && OPAQUE !~ v
541
+ raise InvalidComponentError,
542
+ "bad component(expected opaque component): #{v}"
543
+ end
544
+
545
+ return true
546
+ end
547
+ private :check_opaque
548
+
549
+ def set_opaque(v)
550
+ @opaque = v
551
+ end
552
+ protected :set_opaque
553
+
554
+ def opaque=(v)
555
+ check_opaque(v)
556
+ set_opaque(v)
557
+ v
558
+ end
559
+
560
+ def check_fragment(v)
561
+ return v unless v
562
+
563
+ if v && v != '' && FRAGMENT !~ v
564
+ raise InvalidComponentError,
565
+ "bad component(expected fragment component): #{v}"
566
+ end
567
+
568
+ return true
569
+ end
570
+ private :check_fragment
571
+
572
+ def set_fragment(v)
573
+ @fragment = v
574
+ end
575
+ protected :set_fragment
576
+
577
+ def fragment=(v)
578
+ check_fragment(v)
579
+ set_fragment(v)
580
+ v
581
+ end
582
+
583
+ #
584
+ # Checks if URI has a path
585
+ #
586
+ def hierarchical?
587
+ if @path
588
+ true
589
+ else
590
+ false
591
+ end
592
+ end
593
+
594
+ #
595
+ # Checks if URI is an absolute one
596
+ #
597
+ def absolute?
598
+ if @scheme
599
+ true
600
+ else
601
+ false
602
+ end
603
+ end
604
+ alias absolute absolute?
605
+
606
+ #
607
+ # Checks if URI is relative
608
+ #
609
+ def relative?
610
+ !absolute?
611
+ end
612
+
613
+ def split_path(path)
614
+ path.split(%r{/+}, -1)
615
+ end
616
+ private :split_path
617
+
618
+ def merge_path(base, rel)
619
+
620
+ # RFC2396, Section 5.2, 5)
621
+ # RFC2396, Section 5.2, 6)
622
+ base_path = split_path(base)
623
+ rel_path = split_path(rel)
624
+
625
+ # RFC2396, Section 5.2, 6), a)
626
+ base_path << '' if base_path.last == '..'
627
+ while i = base_path.index('..')
628
+ base_path.slice!(i - 1, 2)
629
+ end
630
+
631
+ if (first = rel_path.first) and first.empty?
632
+ base_path.clear
633
+ rel_path.shift
634
+ end
635
+
636
+ # RFC2396, Section 5.2, 6), c)
637
+ # RFC2396, Section 5.2, 6), d)
638
+ rel_path.push('') if rel_path.last == '.' || rel_path.last == '..'
639
+ rel_path.delete('.')
640
+
641
+ # RFC2396, Section 5.2, 6), e)
642
+ tmp = []
643
+ rel_path.each do |x|
644
+ if x == '..' &&
645
+ !(tmp.empty? || tmp.last == '..')
646
+ tmp.pop
647
+ else
648
+ tmp << x
649
+ end
650
+ end
651
+
652
+ add_trailer_slash = !tmp.empty?
653
+ if base_path.empty?
654
+ base_path = [''] # keep '/' for root directory
655
+ elsif add_trailer_slash
656
+ base_path.pop
657
+ end
658
+ while x = tmp.shift
659
+ if x == '..'
660
+ # RFC2396, Section 4
661
+ # a .. or . in an absolute path has no special meaning
662
+ base_path.pop if base_path.size > 1
663
+ else
664
+ # if x == '..'
665
+ # valid absolute (but abnormal) path "/../..."
666
+ # else
667
+ # valid absolute path
668
+ # end
669
+ base_path << x
670
+ tmp.each {|t| base_path << t}
671
+ add_trailer_slash = false
672
+ break
673
+ end
674
+ end
675
+ base_path.push('') if add_trailer_slash
676
+
677
+ return base_path.join('/')
678
+ end
679
+ private :merge_path
680
+
681
+ #
682
+ # == Args
683
+ #
684
+ # +oth+::
685
+ # URI or String
686
+ #
687
+ # == Description
688
+ #
689
+ # Destructive form of #merge
690
+ #
691
+ # == Usage
692
+ #
693
+ # require 'uri'
694
+ #
695
+ # uri = URI.parse("http://my.example.com")
696
+ # uri.merge!("/main.rbx?page=1")
697
+ # p uri
698
+ # # => #<URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1>
699
+ #
700
+ def merge!(oth)
701
+ t = merge(oth)
702
+ if self == t
703
+ nil
704
+ else
705
+ replace!(t)
706
+ self
707
+ end
708
+ end
709
+
710
+ #
711
+ # == Args
712
+ #
713
+ # +oth+::
714
+ # URI or String
715
+ #
716
+ # == Description
717
+ #
718
+ # Merges two URI's.
719
+ #
720
+ # == Usage
721
+ #
722
+ # require 'uri'
723
+ #
724
+ # uri = URI.parse("http://my.example.com")
725
+ # p uri.merge("/main.rbx?page=1")
726
+ # # => #<URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1>
727
+ #
728
+ def merge(oth)
729
+ begin
730
+ base, rel = merge0(oth)
731
+ rescue
732
+ raise $!.class, $!.message
733
+ end
734
+
735
+ if base == rel
736
+ return base
737
+ end
738
+
739
+ authority = rel.userinfo || rel.host || rel.port
740
+
741
+ # RFC2396, Section 5.2, 2)
742
+ if (rel.path.nil? || rel.path.empty?) && !authority && !rel.query
743
+ base.set_fragment(rel.fragment) if rel.fragment
744
+ return base
745
+ end
746
+
747
+ base.set_query(nil)
748
+ base.set_fragment(nil)
749
+
750
+ # RFC2396, Section 5.2, 4)
751
+ if !authority
752
+ base.set_path(merge_path(base.path, rel.path)) if base.path && rel.path
753
+ else
754
+ # RFC2396, Section 5.2, 4)
755
+ base.set_path(rel.path) if rel.path
756
+ end
757
+
758
+ # RFC2396, Section 5.2, 7)
759
+ base.set_userinfo(rel.userinfo) if rel.userinfo
760
+ base.set_host(rel.host) if rel.host
761
+ base.set_port(rel.port) if rel.port
762
+ base.set_query(rel.query) if rel.query
763
+ base.set_fragment(rel.fragment) if rel.fragment
764
+
765
+ return base
766
+ end # merge
767
+ alias + merge
768
+
769
+ # return base and rel.
770
+ # you can modify `base', but can not `rel'.
771
+ def merge0(oth)
772
+ case oth
773
+ when Generic
774
+ when String
775
+ oth = URI.parse(oth)
776
+ else
777
+ raise ArgumentError,
778
+ "bad argument(expected URI object or URI string)"
779
+ end
780
+
781
+ if self.relative? && oth.relative?
782
+ raise BadURIError,
783
+ "both URI are relative"
784
+ end
785
+
786
+ if self.absolute? && oth.absolute?
787
+ #raise BadURIError,
788
+ # "both URI are absolute"
789
+ # hmm... should return oth for usability?
790
+ return oth, oth
791
+ end
792
+
793
+ if self.absolute?
794
+ return self.dup, oth
795
+ else
796
+ return oth, oth
797
+ end
798
+ end
799
+ private :merge0
800
+
801
+ def route_from_path(src, dst)
802
+ # RFC2396, Section 4.2
803
+ return '' if src == dst
804
+
805
+ src_path = split_path(src)
806
+ dst_path = split_path(dst)
807
+
808
+ # hmm... dst has abnormal absolute path,
809
+ # like "/./", "/../", "/x/../", ...
810
+ if dst_path.include?('..') ||
811
+ dst_path.include?('.')
812
+ return dst.dup
813
+ end
814
+
815
+ src_path.pop
816
+
817
+ # discard same parts
818
+ while dst_path.first == src_path.first
819
+ break if dst_path.empty?
820
+
821
+ src_path.shift
822
+ dst_path.shift
823
+ end
824
+
825
+ tmp = dst_path.join('/')
826
+
827
+ # calculate
828
+ if src_path.empty?
829
+ if tmp.empty?
830
+ return './'
831
+ elsif dst_path.first.include?(':') # (see RFC2396 Section 5)
832
+ return './' + tmp
833
+ else
834
+ return tmp
835
+ end
836
+ end
837
+
838
+ return '../' * src_path.size + tmp
839
+ end
840
+ private :route_from_path
841
+
842
+ def route_from0(oth)
843
+ case oth
844
+ when Generic
845
+ when String
846
+ oth = URI.parse(oth)
847
+ else
848
+ raise ArgumentError,
849
+ "bad argument(expected URI object or URI string)"
850
+ end
851
+
852
+ if self.relative?
853
+ raise BadURIError,
854
+ "relative URI: #{self}"
855
+ end
856
+ if oth.relative?
857
+ raise BadURIError,
858
+ "relative URI: #{oth}"
859
+ end
860
+
861
+ if self.scheme != oth.scheme
862
+ return self, self.dup
863
+ end
864
+ rel = URI::Generic.new(nil, # it is relative URI
865
+ self.userinfo, self.host, self.port,
866
+ self.registry, self.path, self.opaque,
867
+ self.query, self.fragment)
868
+
869
+ if rel.userinfo != oth.userinfo ||
870
+ rel.host.to_s.downcase != oth.host.to_s.downcase ||
871
+ rel.port != oth.port
872
+ if self.userinfo.nil? && self.host.nil?
873
+ return self, self.dup
874
+ end
875
+ rel.set_port(nil) if rel.port == oth.default_port
876
+ return rel, rel
877
+ end
878
+ rel.set_userinfo(nil)
879
+ rel.set_host(nil)
880
+ rel.set_port(nil)
881
+
882
+ if rel.path && rel.path == oth.path
883
+ rel.set_path('')
884
+ rel.set_query(nil) if rel.query == oth.query
885
+ return rel, rel
886
+ elsif rel.opaque && rel.opaque == oth.opaque
887
+ rel.set_opaque('')
888
+ rel.set_query(nil) if rel.query == oth.query
889
+ return rel, rel
890
+ end
891
+
892
+ # you can modify `rel', but can not `oth'.
893
+ return oth, rel
894
+ end
895
+ private :route_from0
896
+ #
897
+ # == Args
898
+ #
899
+ # +oth+::
900
+ # URI or String
901
+ #
902
+ # == Description
903
+ #
904
+ # Calculates relative path from oth to self
905
+ #
906
+ # == Usage
907
+ #
908
+ # require 'uri'
909
+ #
910
+ # uri = URI.parse('http://my.example.com/main.rbx?page=1')
911
+ # p uri.route_from('http://my.example.com')
912
+ # #=> #<URI::Generic:0x20218858 URL:/main.rbx?page=1>
913
+ #
914
+ def route_from(oth)
915
+ # you can modify `rel', but can not `oth'.
916
+ begin
917
+ oth, rel = route_from0(oth)
918
+ rescue
919
+ raise $!.class, $!.message
920
+ end
921
+ if oth == rel
922
+ return rel
923
+ end
924
+
925
+ rel.set_path(route_from_path(oth.path, self.path))
926
+ if rel.path == './' && self.query
927
+ # "./?foo" -> "?foo"
928
+ rel.set_path('')
929
+ end
930
+
931
+ return rel
932
+ end
933
+
934
+ alias - route_from
935
+
936
+ #
937
+ # == Args
938
+ #
939
+ # +oth+::
940
+ # URI or String
941
+ #
942
+ # == Description
943
+ #
944
+ # Calculates relative path to oth from self
945
+ #
946
+ # == Usage
947
+ #
948
+ # require 'uri'
949
+ #
950
+ # uri = URI.parse('http://my.example.com')
951
+ # p uri.route_to('http://my.example.com/main.rbx?page=1')
952
+ # #=> #<URI::Generic:0x2020c2f6 URL:/main.rbx?page=1>
953
+ #
954
+ def route_to(oth)
955
+ case oth
956
+ when Generic
957
+ when String
958
+ oth = URI.parse(oth)
959
+ else
960
+ raise ArgumentError,
961
+ "bad argument(expected URI object or URI string)"
962
+ end
963
+
964
+ oth.route_from(self)
965
+ end
966
+
967
+ #
968
+ # Returns normalized URI
969
+ #
970
+ def normalize
971
+ uri = dup
972
+ uri.normalize!
973
+ uri
974
+ end
975
+
976
+ #
977
+ # Destructive version of #normalize
978
+ #
979
+ def normalize!
980
+ if path && path == ''
981
+ set_path('/')
982
+ end
983
+ if host && host != host.downcase
984
+ set_host(self.host.downcase)
985
+ end
986
+ end
987
+
988
+ def path_query
989
+ str = @path
990
+ if @query
991
+ str += '?' + @query
992
+ end
993
+ str
994
+ end
995
+ private :path_query
996
+
997
+ #
998
+ # Constructs String from URI
999
+ #
1000
+ def to_s
1001
+ str = ''
1002
+ if @scheme
1003
+ str << @scheme
1004
+ str << ':'
1005
+ end
1006
+
1007
+ if @opaque
1008
+ str << @opaque
1009
+
1010
+ else
1011
+ if @registry
1012
+ str << @registry
1013
+ else
1014
+ if @host
1015
+ str << '//'
1016
+ end
1017
+ if self.userinfo
1018
+ str << self.userinfo
1019
+ str << '@'
1020
+ end
1021
+ if @host
1022
+ str << @host
1023
+ end
1024
+ if @port && @port != self.default_port
1025
+ str << ':'
1026
+ str << @port.to_s
1027
+ end
1028
+ end
1029
+
1030
+ str << path_query
1031
+ end
1032
+
1033
+ if @fragment
1034
+ str << '#'
1035
+ str << @fragment
1036
+ end
1037
+
1038
+ str
1039
+ end
1040
+
1041
+ #
1042
+ # Compares to URI's
1043
+ #
1044
+ def ==(oth)
1045
+ if self.class == oth.class
1046
+ self.normalize.component_ary == oth.normalize.component_ary
1047
+ else
1048
+ false
1049
+ end
1050
+ end
1051
+
1052
+ def hash
1053
+ self.component_ary.hash
1054
+ end
1055
+
1056
+ def eql?(oth)
1057
+ self.component_ary.eql?(oth.component_ary)
1058
+ end
1059
+
1060
+ =begin
1061
+
1062
+ --- URI::Generic#===(oth)
1063
+
1064
+ =end
1065
+ # def ===(oth)
1066
+ # raise NotImplementedError
1067
+ # end
1068
+
1069
+ =begin
1070
+ =end
1071
+ def component_ary
1072
+ component.collect do |x|
1073
+ self.send(x)
1074
+ end
1075
+ end
1076
+ protected :component_ary
1077
+
1078
+ # == Args
1079
+ #
1080
+ # +components+::
1081
+ # Multiple Symbol arguments defined in URI::HTTP
1082
+ #
1083
+ # == Description
1084
+ #
1085
+ # Selects specified components from URI
1086
+ #
1087
+ # == Usage
1088
+ #
1089
+ # require 'uri'
1090
+ #
1091
+ # uri = URI.parse('http://myuser:mypass@my.example.com/test.rbx')
1092
+ # p uri.select(:userinfo, :host, :path)
1093
+ # # => ["myuser:mypass", "my.example.com", "/test.rbx"]
1094
+ #
1095
+ def select(*components)
1096
+ components.collect do |c|
1097
+ if component.include?(c)
1098
+ self.send(c)
1099
+ else
1100
+ raise ArgumentError,
1101
+ "expected of components of #{self.class} (#{self.class.component.join(', ')})"
1102
+ end
1103
+ end
1104
+ end
1105
+
1106
+ @@to_s = Kernel.instance_method(:to_s)
1107
+ def inspect
1108
+ @@to_s.bind(self).call.sub!(/>\z/) {" URL:#{self}>"}
1109
+ end
1110
+
1111
+ def coerce(oth)
1112
+ case oth
1113
+ when String
1114
+ oth = URI.parse(oth)
1115
+ else
1116
+ super
1117
+ end
1118
+
1119
+ return oth, self
1120
+ end
1121
+ end
1122
+ end