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,34 @@
1
+ # WSDL4R - XMLSchema unique element.
2
+ # Copyright (C) 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'wsdl/info'
10
+
11
+
12
+ module WSDL
13
+ module XMLSchema
14
+
15
+
16
+ class Unique < Info
17
+ def initialize
18
+ super
19
+ end
20
+
21
+ def parse_element(element)
22
+ # Accepts any element.
23
+ self
24
+ end
25
+
26
+ def parse_attr(attr, value)
27
+ # Accepts any attribute.
28
+ true
29
+ end
30
+ end
31
+
32
+
33
+ end
34
+ end
@@ -0,0 +1,107 @@
1
+ # XSD4R - XSD to ruby mapping library.
2
+ # Copyright (C) 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'xsd/codegen/gensupport'
10
+ require 'wsdl/xmlSchema/importer'
11
+ require 'wsdl/soap/classDefCreator'
12
+
13
+
14
+ module WSDL
15
+ module XMLSchema
16
+
17
+
18
+ class XSD2Ruby
19
+ attr_accessor :location
20
+ attr_reader :opt
21
+ attr_accessor :logger
22
+ attr_accessor :basedir
23
+
24
+ def run
25
+ unless @location
26
+ raise RuntimeError, "XML Schema location not given"
27
+ end
28
+ @xsd = import(@location)
29
+ @name = create_classname(@xsd)
30
+ create_file
31
+ end
32
+
33
+ private
34
+
35
+ def initialize
36
+ @location = nil
37
+ @opt = {}
38
+ @logger = Logger.new(STDERR)
39
+ @basedir = nil
40
+ @xsd = nil
41
+ @name = nil
42
+ end
43
+
44
+ def create_file
45
+ create_classdef
46
+ end
47
+
48
+ def create_classdef
49
+ @logger.info { "Creating class definition." }
50
+ @classdef_filename = @name + '.rb'
51
+ check_file(@classdef_filename) or return
52
+ write_file(@classdef_filename) do |f|
53
+ f << WSDL::SOAP::ClassDefCreator.new(@xsd).dump
54
+ end
55
+ end
56
+
57
+ def write_file(filename)
58
+ if @basedir
59
+ filename = File.join(basedir, filename)
60
+ end
61
+ File.open(filename, "w") do |f|
62
+ yield f
63
+ end
64
+ end
65
+
66
+ def check_file(filename)
67
+ if @basedir
68
+ filename = File.join(basedir, filename)
69
+ end
70
+ if FileTest.exist?(filename)
71
+ if @opt.key?('force')
72
+ @logger.warn {
73
+ "File '#{filename}' exists but overrides it."
74
+ }
75
+ true
76
+ else
77
+ @logger.warn {
78
+ "File '#{filename}' exists. #{$0} did not override it."
79
+ }
80
+ false
81
+ end
82
+ else
83
+ @logger.info { "Creates file '#{filename}'." }
84
+ true
85
+ end
86
+ end
87
+
88
+ def create_classname(xsd)
89
+ name = nil
90
+ if xsd.targetnamespace
91
+ name = xsd.targetnamespace.scan(/[a-zA-Z0-9]+$/)[0]
92
+ end
93
+ if name.nil?
94
+ 'default'
95
+ else
96
+ XSD::CodeGen::GenSupport.safevarname(name)
97
+ end
98
+ end
99
+
100
+ def import(location)
101
+ WSDL::XMLSchema::Importer.import(location)
102
+ end
103
+ end
104
+
105
+
106
+ end
107
+ end
@@ -0,0 +1,31 @@
1
+ = XMLRPC for Ruby, Standard Library Documentation
2
+
3
+ == Overview
4
+
5
+ XMLRPC is a lightweight protocol that enables remote procedure calls over
6
+ HTTP. It is defined at http://www.xmlrpc.com.
7
+
8
+ XMLRPC allows you to create simple distributed computing solutions that span
9
+ computer languages. Its distinctive feature is its simplicity compared to
10
+ other approaches like SOAP and CORBA.
11
+
12
+ The Ruby standard library package 'xmlrpc' enables you to create a server that
13
+ implements remote procedures and a client that calls them. Very little code
14
+ is required to achieve either of these.
15
+
16
+ == Example
17
+
18
+ Try the following code. It calls a standard demonstration remote procedure.
19
+
20
+ require 'xmlrpc/client'
21
+ require 'pp'
22
+
23
+ server = XMLRPC::Client.new2("http://xmlrpc-c.sourceforge.net/api/sample.php")
24
+ result = server.call("sample.sumAndDifference", 5, 3)
25
+ pp result
26
+
27
+ == Documentation
28
+
29
+ See http://www.ntecs.de/projects/xmlrpc4r. There is plenty of detail there to
30
+ use the client and implement a server.
31
+
@@ -0,0 +1,81 @@
1
+ =begin
2
+ = xmlrpc/base64.rb
3
+ Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
4
+
5
+ Released under the same term of license as Ruby.
6
+
7
+ = Classes
8
+ * ((<XMLRPC::Base64>))
9
+
10
+ = XMLRPC::Base64
11
+ == Description
12
+ This class is necessary for (('xmlrpc4r')) to determine that a string should
13
+ be transmitted base64-encoded and not as a raw-string.
14
+ You can use (({XMLRPC::Base64})) on the client and server-side as a
15
+ parameter and/or return-value.
16
+
17
+ == Class Methods
18
+ --- XMLRPC::Base64.new( str, state = :dec )
19
+ Creates a new (({XMLRPC::Base64})) instance with string ((|str|)) as the
20
+ internal string. When ((|state|)) is (({:dec})) it assumes that the
21
+ string ((|str|)) is not in base64 format (perhaps already decoded),
22
+ otherwise if ((|state|)) is (({:enc})) it decodes ((|str|))
23
+ and stores it as the internal string.
24
+
25
+ --- XMLRPC::Base64.decode( str )
26
+ Decodes string ((|str|)) with base64 and returns that value.
27
+
28
+ --- XMLRPC::Base64.encode( str )
29
+ Encodes string ((|str|)) with base64 and returns that value.
30
+
31
+ == Instance Methods
32
+ --- XMLRPC::Base64#decoded
33
+ Returns the internal string decoded.
34
+
35
+ --- XMLRPC::Base64#encoded
36
+ Returns the internal string encoded with base64.
37
+
38
+ =end
39
+
40
+ module XMLRPC
41
+
42
+ class Base64
43
+
44
+ def initialize(str, state = :dec)
45
+ case state
46
+ when :enc
47
+ @str = Base64.decode(str)
48
+ when :dec
49
+ @str = str
50
+ else
51
+ raise ArgumentError, "wrong argument; either :enc or :dec"
52
+ end
53
+ end
54
+
55
+ def decoded
56
+ @str
57
+ end
58
+
59
+ def encoded
60
+ Base64.encode(@str)
61
+ end
62
+
63
+
64
+ def Base64.decode(str)
65
+ str.gsub(/\s+/, "").unpack("m")[0]
66
+ end
67
+
68
+ def Base64.encode(str)
69
+ [str].pack("m")
70
+ end
71
+
72
+ end
73
+
74
+
75
+ end # module XMLRPC
76
+
77
+
78
+ =begin
79
+ = History
80
+ $Id: base64.rb 11708 2007-02-12 23:01:19Z shyouhei $
81
+ =end
@@ -0,0 +1,624 @@
1
+ =begin
2
+ = xmlrpc/client.rb
3
+ Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
4
+
5
+ Released under the same term of license as Ruby.
6
+
7
+ = Classes
8
+ * ((<XMLRPC::Client>))
9
+ * ((<XMLRPC::Client::Proxy>))
10
+
11
+
12
+ = XMLRPC::Client
13
+ == Synopsis
14
+ require "xmlrpc/client"
15
+
16
+ server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
17
+ begin
18
+ param = server.call("michael.add", 4, 5)
19
+ puts "4 + 5 = #{param}"
20
+ rescue XMLRPC::FaultException => e
21
+ puts "Error:"
22
+ puts e.faultCode
23
+ puts e.faultString
24
+ end
25
+
26
+ or
27
+
28
+ require "xmlrpc/client"
29
+
30
+ server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
31
+ ok, param = server.call2("michael.add", 4, 5)
32
+ if ok then
33
+ puts "4 + 5 = #{param}"
34
+ else
35
+ puts "Error:"
36
+ puts param.faultCode
37
+ puts param.faultString
38
+ end
39
+
40
+ == Description
41
+ Class (({XMLRPC::Client})) provides remote procedure calls to a XML-RPC server.
42
+ After setting the connection-parameters with ((<XMLRPC::Client.new>)) which
43
+ creates a new (({XMLRPC::Client})) instance, you can execute a remote procedure
44
+ by sending the ((<call|XMLRPC::Client#call>)) or ((<call2|XMLRPC::Client#call2>))
45
+ message to this new instance. The given parameters indicate which method to
46
+ call on the remote-side and of course the parameters for the remote procedure.
47
+
48
+ == Class Methods
49
+ --- XMLRPC::Client.new( host=nil, path=nil, port=nil, proxy_host=nil, proxy_port=nil, user=nil, password=nil, use_ssl=false, timeout =nil)
50
+ Creates an object which represents the remote XML-RPC server on the
51
+ given host ((|host|)). If the server is CGI-based, ((|path|)) is the
52
+ path to the CGI-script, which will be called, otherwise (in the
53
+ case of a standalone server) ((|path|)) should be (({"/RPC2"})).
54
+ ((|port|)) is the port on which the XML-RPC server listens.
55
+ If ((|proxy_host|)) is given, then a proxy server listening at
56
+ ((|proxy_host|)) is used. ((|proxy_port|)) is the port of the
57
+ proxy server.
58
+
59
+ Default values for ((|host|)), ((|path|)) and ((|port|)) are 'localhost', '/RPC2' and
60
+ '80' respectively using SSL '443'.
61
+
62
+ If ((|user|)) and ((|password|)) are given, each time a request is send,
63
+ a Authorization header is send. Currently only Basic Authentification is
64
+ implemented no Digest.
65
+
66
+ If ((|use_ssl|)) is set to (({true})), comunication over SSL is enabled.
67
+ Note, that you need the SSL package from RAA installed.
68
+
69
+ Parameter ((|timeout|)) is the time to wait for a XML-RPC response, defaults to 30.
70
+
71
+ --- XMLRPC::Client.new2( uri, proxy=nil, timeout=nil)
72
+ --- XMLRPC::Client.new_from_uri( uri, proxy=nil, timeout=nil)
73
+ : uri
74
+ URI specifying protocol (http or https), host, port, path, user and password.
75
+ Example: https://user:password@host:port/path
76
+
77
+ : proxy
78
+ Is of the form "host:port".
79
+
80
+ : timeout
81
+ Defaults to 30.
82
+
83
+ --- XMLRPC::Client.new3( hash={} )
84
+ --- XMLRPC::Client.new_from_hash( hash={} )
85
+ Parameter ((|hash|)) has following case-insensitive keys:
86
+ * host
87
+ * path
88
+ * port
89
+ * proxy_host
90
+ * proxy_port
91
+ * user
92
+ * password
93
+ * use_ssl
94
+ * timeout
95
+
96
+ Calls ((<XMLRPC::Client.new>)) with the corresponding values.
97
+
98
+ == Instance Methods
99
+ --- XMLRPC::Client#call( method, *args )
100
+ Invokes the method named ((|method|)) with the parameters given by
101
+ ((|args|)) on the XML-RPC server.
102
+ The parameter ((|method|)) is converted into a (({String})) and should
103
+ be a valid XML-RPC method-name.
104
+ Each parameter of ((|args|)) must be of one of the following types,
105
+ where (({Hash})), (({Struct})) and (({Array})) can contain any of these listed ((:types:)):
106
+ * (({Fixnum})), (({Bignum}))
107
+ * (({TrueClass})), (({FalseClass})) ((({true})), (({false})))
108
+ * (({String})), (({Symbol}))
109
+ * (({Float}))
110
+ * (({Hash})), (({Struct}))
111
+ * (({Array}))
112
+ * (({Date})), (({Time})), (({XMLRPC::DateTime}))
113
+ * (({XMLRPC::Base64}))
114
+ * A Ruby object which class includes XMLRPC::Marshallable (only if Config::ENABLE_MARSHALLABLE is (({true}))).
115
+ That object is converted into a hash, with one additional key/value pair "___class___" which contains the class name
116
+ for restoring later that object.
117
+
118
+ The method returns the return-value from the RPC
119
+ ((-stands for Remote Procedure Call-)).
120
+ The type of the return-value is one of the above shown,
121
+ only that a (({Bignum})) is only allowed when it fits in 32-bit and
122
+ that a XML-RPC (('dateTime.iso8601')) type is always returned as
123
+ a ((<(({XMLRPC::DateTime}))|URL:datetime.html>)) object and
124
+ a (({Struct})) is never returned, only a (({Hash})), the same for a (({Symbol})), where
125
+ always a (({String})) is returned.
126
+ A (({XMLRPC::Base64})) is returned as a (({String})) from xmlrpc4r version 1.6.1 on.
127
+
128
+ If the remote procedure returned a fault-structure, then a
129
+ (({XMLRPC::FaultException})) exception is raised, which has two accessor-methods
130
+ (({faultCode})) and (({faultString})) of type (({Integer})) and (({String})).
131
+
132
+ --- XMLRPC::Client#call2( method, *args )
133
+ The difference between this method and ((<call|XMLRPC::Client#call>)) is, that
134
+ this method do ((*not*)) raise a (({XMLRPC::FaultException})) exception.
135
+ The method returns an array of two values. The first value indicates if
136
+ the second value is a return-value ((({true}))) or an object of type
137
+ (({XMLRPC::FaultException})).
138
+ Both are explained in ((<call|XMLRPC::Client#call>)).
139
+
140
+ Simple to remember: The "2" in "call2" denotes the number of values it returns.
141
+
142
+ --- XMLRPC::Client#multicall( *methods )
143
+ You can use this method to execute several methods on a XMLRPC server which supports
144
+ the multi-call extension.
145
+ Example:
146
+
147
+ s.multicall(
148
+ ['michael.add', 3, 4],
149
+ ['michael.sub', 4, 5]
150
+ )
151
+ # => [7, -1]
152
+
153
+ --- XMLRPC::Client#multicall2( *methods )
154
+ Same as ((<XMLRPC::Client#multicall>)), but returns like ((<XMLRPC::Client#call2>)) two parameters
155
+ instead of raising an (({XMLRPC::FaultException})).
156
+
157
+ --- XMLRPC::Client#proxy( prefix, *args )
158
+ Returns an object of class (({XMLRPC::Client::Proxy})), initialized with
159
+ ((|prefix|)) and ((|args|)). A proxy object returned by this method behaves
160
+ like ((<XMLRPC::Client#call>)), i.e. a call on that object will raise a
161
+ (({XMLRPC::FaultException})) when a fault-structure is returned by that call.
162
+
163
+ --- XMLRPC::Client#proxy2( prefix, *args )
164
+ Almost the same like ((<XMLRPC::Client#proxy>)) only that a call on the returned
165
+ (({XMLRPC::Client::Proxy})) object behaves like ((<XMLRPC::Client#call2>)), i.e.
166
+ a call on that object will return two parameters.
167
+
168
+
169
+
170
+
171
+ --- XMLRPC::Client#call_async(...)
172
+ --- XMLRPC::Client#call2_async(...)
173
+ --- XMLRPC::Client#multicall_async(...)
174
+ --- XMLRPC::Client#multicall2_async(...)
175
+ --- XMLRPC::Client#proxy_async(...)
176
+ --- XMLRPC::Client#proxy2_async(...)
177
+ In contrast to corresponding methods without "_async", these can be
178
+ called concurrently and use for each request a new connection, where the
179
+ non-asynchronous counterparts use connection-alive (one connection for all requests)
180
+ if possible.
181
+
182
+ Note, that you have to use Threads to call these methods concurrently.
183
+ The following example calls two methods concurrently:
184
+
185
+ Thread.new {
186
+ p client.call_async("michael.add", 4, 5)
187
+ }
188
+
189
+ Thread.new {
190
+ p client.call_async("michael.div", 7, 9)
191
+ }
192
+
193
+
194
+ --- XMLRPC::Client#timeout
195
+ --- XMLRPC::Client#user
196
+ --- XMLRPC::Client#password
197
+ Return the corresponding attributes.
198
+
199
+ --- XMLRPC::Client#timeout= (new_timeout)
200
+ --- XMLRPC::Client#user= (new_user)
201
+ --- XMLRPC::Client#password= (new_password)
202
+ Set the corresponding attributes.
203
+
204
+
205
+ --- XMLRPC::Client#set_writer( writer )
206
+ Sets the XML writer to use for generating XML output.
207
+ Should be an instance of a class from module (({XMLRPC::XMLWriter})).
208
+ If this method is not called, then (({XMLRPC::Config::DEFAULT_WRITER})) is used.
209
+
210
+ --- XMLRPC::Client#set_parser( parser )
211
+ Sets the XML parser to use for parsing XML documents.
212
+ Should be an instance of a class from module (({XMLRPC::XMLParser})).
213
+ If this method is not called, then (({XMLRPC::Config::DEFAULT_PARSER})) is used.
214
+
215
+ --- XMLRPC::Client#cookie
216
+ --- XMLRPC::Client#cookie= (cookieString)
217
+ Get and set the HTTP Cookie header.
218
+
219
+ --- XMLRPC::Client#http_header_extra= (additionalHeaders)
220
+ Set extra HTTP headers that are included in the request.
221
+
222
+ --- XMLRPC::Client#http_header_extra
223
+ Access the via ((<XMLRPC::Client#http_header_extra=>)) assigned header.
224
+
225
+ --- XMLRPC::Client#http_last_response
226
+ Returns the (({Net::HTTPResponse})) object of the last RPC.
227
+
228
+ = XMLRPC::Client::Proxy
229
+ == Synopsis
230
+ require "xmlrpc/client"
231
+
232
+ server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
233
+
234
+ michael = server.proxy("michael")
235
+ michael2 = server.proxy("michael", 4)
236
+
237
+ # both calls should return the same value '9'.
238
+ p michael.add(4,5)
239
+ p michael2.add(5)
240
+
241
+ == Description
242
+ Class (({XMLRPC::Client::Proxy})) makes XML-RPC calls look nicer!
243
+ You can call any method onto objects of that class - the object handles
244
+ (({method_missing})) and will forward the method call to a XML-RPC server.
245
+ Don't use this class directly, but use instead method ((<XMLRPC::Client#proxy>)) or
246
+ ((<XMLRPC::Client#proxy2>)).
247
+
248
+ == Class Methods
249
+ --- XMLRPC::Client::Proxy.new( server, prefix, args=[], meth=:call, delim="." )
250
+ Creates an object which provides (({method_missing})).
251
+
252
+ ((|server|)) must be of type (({XMLRPC::Client})), which is the XML-RPC server to be used
253
+ for a XML-RPC call. ((|prefix|)) and ((|delim|)) will be prepended to the methodname
254
+ called onto this object.
255
+
256
+ Parameter ((|meth|)) is the method (call, call2, call_async, call2_async) to use for
257
+ a RPC.
258
+
259
+ ((|args|)) are arguments which are automatically given
260
+ to every XML-RPC call before the arguments provides through (({method_missing})).
261
+
262
+ == Instance Methods
263
+ Every method call is forwarded to the XML-RPC server defined in ((<new|XMLRPC::Client::Proxy#new>)).
264
+
265
+ Note: Inherited methods from class (({Object})) cannot be used as XML-RPC names, because they get around
266
+ (({method_missing})).
267
+
268
+
269
+
270
+ = History
271
+ $Id: client.rb 16048 2008-04-15 17:11:48Z knu $
272
+
273
+ =end
274
+
275
+
276
+
277
+ require "xmlrpc/parser"
278
+ require "xmlrpc/create"
279
+ require "xmlrpc/config"
280
+ require "xmlrpc/utils" # ParserWriterChooseMixin
281
+ require "net/http"
282
+
283
+ module XMLRPC
284
+
285
+ class Client
286
+
287
+ USER_AGENT = "XMLRPC::Client (Ruby #{RUBY_VERSION})"
288
+
289
+ include ParserWriterChooseMixin
290
+ include ParseContentType
291
+
292
+
293
+ # Constructors -------------------------------------------------------------------
294
+
295
+ def initialize(host=nil, path=nil, port=nil, proxy_host=nil, proxy_port=nil,
296
+ user=nil, password=nil, use_ssl=nil, timeout=nil)
297
+
298
+ @http_header_extra = nil
299
+ @http_last_response = nil
300
+ @cookie = nil
301
+
302
+ @host = host || "localhost"
303
+ @path = path || "/RPC2"
304
+ @proxy_host = proxy_host
305
+ @proxy_port = proxy_port
306
+ @proxy_host ||= 'localhost' if @proxy_port != nil
307
+ @proxy_port ||= 8080 if @proxy_host != nil
308
+ @use_ssl = use_ssl || false
309
+ @timeout = timeout || 30
310
+
311
+ if use_ssl
312
+ require "net/https"
313
+ @port = port || 443
314
+ else
315
+ @port = port || 80
316
+ end
317
+
318
+ @user, @password = user, password
319
+
320
+ set_auth
321
+
322
+ # convert ports to integers
323
+ @port = @port.to_i if @port != nil
324
+ @proxy_port = @proxy_port.to_i if @proxy_port != nil
325
+
326
+ # HTTP object for synchronous calls
327
+ Net::HTTP.version_1_2
328
+ @http = Net::HTTP.new(@host, @port, @proxy_host, @proxy_port)
329
+ @http.use_ssl = @use_ssl if @use_ssl
330
+ @http.read_timeout = @timeout
331
+ @http.open_timeout = @timeout
332
+
333
+ @parser = nil
334
+ @create = nil
335
+ end
336
+
337
+
338
+ class << self
339
+
340
+ def new2(uri, proxy=nil, timeout=nil)
341
+ if match = /^([^:]+):\/\/(([^@]+)@)?([^\/]+)(\/.*)?$/.match(uri)
342
+ proto = match[1]
343
+ user, passwd = (match[3] || "").split(":")
344
+ host, port = match[4].split(":")
345
+ path = match[5]
346
+
347
+ if proto != "http" and proto != "https"
348
+ raise "Wrong protocol specified. Only http or https allowed!"
349
+ end
350
+
351
+ else
352
+ raise "Wrong URI as parameter!"
353
+ end
354
+
355
+ proxy_host, proxy_port = (proxy || "").split(":")
356
+
357
+ self.new(host, path, port, proxy_host, proxy_port, user, passwd, (proto == "https"), timeout)
358
+ end
359
+
360
+ alias new_from_uri new2
361
+
362
+ def new3(hash={})
363
+
364
+ # convert all keys into lowercase strings
365
+ h = {}
366
+ hash.each { |k,v| h[k.to_s.downcase] = v }
367
+
368
+ self.new(h['host'], h['path'], h['port'], h['proxy_host'], h['proxy_port'], h['user'], h['password'],
369
+ h['use_ssl'], h['timeout'])
370
+ end
371
+
372
+ alias new_from_hash new3
373
+
374
+ end
375
+
376
+
377
+ # Attribute Accessors -------------------------------------------------------------------
378
+
379
+ # add additional HTTP headers to the request
380
+ attr_accessor :http_header_extra
381
+
382
+ # makes last HTTP response accessible
383
+ attr_reader :http_last_response
384
+
385
+ # Cookie support
386
+ attr_accessor :cookie
387
+
388
+
389
+ attr_reader :timeout, :user, :password
390
+
391
+ def timeout=(new_timeout)
392
+ @timeout = new_timeout
393
+ @http.read_timeout = @timeout
394
+ @http.open_timeout = @timeout
395
+ end
396
+
397
+ def user=(new_user)
398
+ @user = new_user
399
+ set_auth
400
+ end
401
+
402
+ def password=(new_password)
403
+ @password = new_password
404
+ set_auth
405
+ end
406
+
407
+ # Call methods --------------------------------------------------------------
408
+
409
+ def call(method, *args)
410
+ ok, param = call2(method, *args)
411
+ if ok
412
+ param
413
+ else
414
+ raise param
415
+ end
416
+ end
417
+
418
+ def call2(method, *args)
419
+ request = create().methodCall(method, *args)
420
+ data = do_rpc(request, false)
421
+ parser().parseMethodResponse(data)
422
+ end
423
+
424
+ def call_async(method, *args)
425
+ ok, param = call2_async(method, *args)
426
+ if ok
427
+ param
428
+ else
429
+ raise param
430
+ end
431
+ end
432
+
433
+ def call2_async(method, *args)
434
+ request = create().methodCall(method, *args)
435
+ data = do_rpc(request, true)
436
+ parser().parseMethodResponse(data)
437
+ end
438
+
439
+
440
+ # Multicall methods --------------------------------------------------------------
441
+
442
+ def multicall(*methods)
443
+ ok, params = multicall2(*methods)
444
+ if ok
445
+ params
446
+ else
447
+ raise params
448
+ end
449
+ end
450
+
451
+ def multicall2(*methods)
452
+ gen_multicall(methods, false)
453
+ end
454
+
455
+ def multicall_async(*methods)
456
+ ok, params = multicall2_async(*methods)
457
+ if ok
458
+ params
459
+ else
460
+ raise params
461
+ end
462
+ end
463
+
464
+ def multicall2_async(*methods)
465
+ gen_multicall(methods, true)
466
+ end
467
+
468
+
469
+ # Proxy generating methods ------------------------------------------
470
+
471
+ def proxy(prefix=nil, *args)
472
+ Proxy.new(self, prefix, args, :call)
473
+ end
474
+
475
+ def proxy2(prefix=nil, *args)
476
+ Proxy.new(self, prefix, args, :call2)
477
+ end
478
+
479
+ def proxy_async(prefix=nil, *args)
480
+ Proxy.new(self, prefix, args, :call_async)
481
+ end
482
+
483
+ def proxy2_async(prefix=nil, *args)
484
+ Proxy.new(self, prefix, args, :call2_async)
485
+ end
486
+
487
+
488
+ private # ----------------------------------------------------------
489
+
490
+ def set_auth
491
+ if @user.nil?
492
+ @auth = nil
493
+ else
494
+ a = "#@user"
495
+ a << ":#@password" if @password != nil
496
+ @auth = ("Basic " + [a].pack("m")).chomp
497
+ end
498
+ end
499
+
500
+ def do_rpc(request, async=false)
501
+ header = {
502
+ "User-Agent" => USER_AGENT,
503
+ "Content-Type" => "text/xml; charset=utf-8",
504
+ "Content-Length" => request.size.to_s,
505
+ "Connection" => (async ? "close" : "keep-alive")
506
+ }
507
+
508
+ header["Cookie"] = @cookie if @cookie
509
+ header.update(@http_header_extra) if @http_header_extra
510
+
511
+ if @auth != nil
512
+ # add authorization header
513
+ header["Authorization"] = @auth
514
+ end
515
+
516
+ resp = nil
517
+ @http_last_response = nil
518
+
519
+ if async
520
+ # use a new HTTP object for each call
521
+ Net::HTTP.version_1_2
522
+ http = Net::HTTP.new(@host, @port, @proxy_host, @proxy_port)
523
+ http.use_ssl = @use_ssl if @use_ssl
524
+ http.read_timeout = @timeout
525
+ http.open_timeout = @timeout
526
+
527
+ # post request
528
+ http.start {
529
+ resp = http.post2(@path, request, header)
530
+ }
531
+ else
532
+ # reuse the HTTP object for each call => connection alive is possible
533
+ # we must start connection explicitely first time so that http.request
534
+ # does not assume that we don't want keepalive
535
+ @http.start if not @http.started?
536
+
537
+ # post request
538
+ resp = @http.post2(@path, request, header)
539
+ end
540
+
541
+ @http_last_response = resp
542
+
543
+ data = resp.body
544
+
545
+ if resp.code == "401"
546
+ # Authorization Required
547
+ raise "Authorization failed.\nHTTP-Error: #{resp.code} #{resp.message}"
548
+ elsif resp.code[0,1] != "2"
549
+ raise "HTTP-Error: #{resp.code} #{resp.message}"
550
+ end
551
+
552
+ ct = parse_content_type(resp["Content-Type"]).first
553
+ if ct != "text/xml"
554
+ if ct == "text/html"
555
+ raise "Wrong content-type (received '#{ct}' but expected 'text/xml'): \n#{data}"
556
+ else
557
+ raise "Wrong content-type (received '#{ct}' but expected 'text/xml')"
558
+ end
559
+ end
560
+
561
+ expected = resp["Content-Length"] || "<unknown>"
562
+ if data.nil? or data.size == 0
563
+ raise "Wrong size. Was #{data.size}, should be #{expected}"
564
+ elsif expected != "<unknown>" and expected.to_i != data.size and resp["Transfer-Encoding"].nil?
565
+ raise "Wrong size. Was #{data.size}, should be #{expected}"
566
+ end
567
+
568
+ set_cookies = resp.get_fields("Set-Cookie")
569
+ if set_cookies and !set_cookies.empty?
570
+ @cookie = set_cookies.collect do |set_cookie|
571
+ cookie = WEBrick::Cookie.parse_set_cookie(set_cookie)
572
+ WEBrick::Cookie.new(cookie.name, cookie.value).to_s
573
+ end.join("; ")
574
+ end
575
+
576
+ return data
577
+ end
578
+
579
+ def gen_multicall(methods=[], async=false)
580
+ meth = :call2
581
+ meth = :call2_async if async
582
+
583
+ ok, params = self.send(meth, "system.multicall",
584
+ methods.collect {|m| {'methodName' => m[0], 'params' => m[1..-1]} }
585
+ )
586
+
587
+ if ok
588
+ params = params.collect do |param|
589
+ if param.is_a? Array
590
+ param[0]
591
+ elsif param.is_a? Hash
592
+ XMLRPC::FaultException.new(param["faultCode"], param["faultString"])
593
+ else
594
+ raise "Wrong multicall return value"
595
+ end
596
+ end
597
+ end
598
+
599
+ return ok, params
600
+ end
601
+
602
+
603
+
604
+ class Proxy
605
+
606
+ def initialize(server, prefix, args=[], meth=:call, delim=".")
607
+ @server = server
608
+ @prefix = prefix ? prefix + delim : ""
609
+ @args = args
610
+ @meth = meth
611
+ end
612
+
613
+ def method_missing(mid, *args)
614
+ pre = @prefix + mid.to_s
615
+ arg = @args + args
616
+ @server.send(@meth, pre, *arg)
617
+ end
618
+
619
+ end # class Proxy
620
+
621
+ end # class Client
622
+
623
+ end # module XMLRPC
624
+