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,178 @@
1
+ #
2
+ # Implements a simple HTTP-server by using John W. Small's (jsmall@laser.net)
3
+ # ruby-generic-server.
4
+ #
5
+ # Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
6
+ #
7
+ # $Id: httpserver.rb 11708 2007-02-12 23:01:19Z shyouhei $
8
+ #
9
+
10
+
11
+ require "gserver"
12
+
13
+ class HttpServer < GServer
14
+
15
+ ##
16
+ # handle_obj specifies the object, that receives calls to request_handler
17
+ # and ip_auth_handler
18
+ def initialize(handle_obj, port = 8080, host = DEFAULT_HOST, maxConnections = 4,
19
+ stdlog = $stdout, audit = true, debug = true)
20
+ @handler = handle_obj
21
+ super(port, host, maxConnections, stdlog, audit, debug)
22
+ end
23
+
24
+ private
25
+
26
+ # Constants -----------------------------------------------
27
+
28
+ CRLF = "\r\n"
29
+ HTTP_PROTO = "HTTP/1.0"
30
+ SERVER_NAME = "HttpServer (Ruby #{RUBY_VERSION})"
31
+
32
+ DEFAULT_HEADER = {
33
+ "Server" => SERVER_NAME
34
+ }
35
+
36
+ ##
37
+ # Mapping of status code and error message
38
+ #
39
+ StatusCodeMapping = {
40
+ 200 => "OK",
41
+ 400 => "Bad Request",
42
+ 403 => "Forbidden",
43
+ 405 => "Method Not Allowed",
44
+ 411 => "Length Required",
45
+ 500 => "Internal Server Error"
46
+ }
47
+
48
+ # Classes -------------------------------------------------
49
+
50
+ class Request
51
+ attr_reader :data, :header, :method, :path, :proto
52
+
53
+ def initialize(data, method=nil, path=nil, proto=nil)
54
+ @header, @data = Table.new, data
55
+ @method, @path, @proto = method, path, proto
56
+ end
57
+
58
+ def content_length
59
+ len = @header['Content-Length']
60
+ return nil if len.nil?
61
+ return len.to_i
62
+ end
63
+
64
+ end
65
+
66
+ class Response
67
+ attr_reader :header
68
+ attr_accessor :body, :status, :status_message
69
+
70
+ def initialize(status=200)
71
+ @status = status
72
+ @status_message = nil
73
+ @header = Table.new
74
+ end
75
+ end
76
+
77
+
78
+ ##
79
+ # a case-insensitive Hash class for HTTP header
80
+ #
81
+ class Table
82
+ include Enumerable
83
+
84
+ def initialize(hash={})
85
+ @hash = hash
86
+ update(hash)
87
+ end
88
+
89
+ def [](key)
90
+ @hash[key.to_s.capitalize]
91
+ end
92
+
93
+ def []=(key, value)
94
+ @hash[key.to_s.capitalize] = value
95
+ end
96
+
97
+ def update(hash)
98
+ hash.each {|k,v| self[k] = v}
99
+ self
100
+ end
101
+
102
+ def each
103
+ @hash.each {|k,v| yield k.capitalize, v }
104
+ end
105
+
106
+ def writeTo(port)
107
+ each { |k,v| port << "#{k}: #{v}" << CRLF }
108
+ end
109
+ end # class Table
110
+
111
+
112
+ # Helper Methods ------------------------------------------
113
+
114
+ def http_header(header=nil)
115
+ new_header = Table.new(DEFAULT_HEADER)
116
+ new_header.update(header) unless header.nil?
117
+
118
+ new_header["Connection"] = "close"
119
+ new_header["Date"] = http_date(Time.now)
120
+
121
+ new_header
122
+ end
123
+
124
+ def http_date( aTime )
125
+ aTime.gmtime.strftime( "%a, %d %b %Y %H:%M:%S GMT" )
126
+ end
127
+
128
+ def http_resp(status_code, status_message=nil, header=nil, body=nil)
129
+ status_message ||= StatusCodeMapping[status_code]
130
+
131
+ str = ""
132
+ str << "#{HTTP_PROTO} #{status_code} #{status_message}" << CRLF
133
+ http_header(header).writeTo(str)
134
+ str << CRLF
135
+ str << body unless body.nil?
136
+ str
137
+ end
138
+
139
+ # Main Serve Loop -----------------------------------------
140
+
141
+ def serve(io)
142
+ # perform IP authentification
143
+ unless @handler.ip_auth_handler(io)
144
+ io << http_resp(403, "Forbidden")
145
+ return
146
+ end
147
+
148
+ # parse first line
149
+ if io.gets =~ /^(\S+)\s+(\S+)\s+(\S+)/
150
+ request = Request.new(io, $1, $2, $3)
151
+ else
152
+ io << http_resp(400, "Bad Request")
153
+ return
154
+ end
155
+
156
+ # parse HTTP headers
157
+ while (line=io.gets) !~ /^(\n|\r)/
158
+ if line =~ /^([\w-]+):\s*(.*)$/
159
+ request.header[$1] = $2.strip
160
+ end
161
+ end
162
+
163
+ io.binmode
164
+ response = Response.new
165
+
166
+ # execute request handler
167
+ @handler.request_handler(request, response)
168
+
169
+ # write response back to the client
170
+ io << http_resp(response.status, response.status_message,
171
+ response.header, response.body)
172
+
173
+ rescue Exception => e
174
+ io << http_resp(500, "Internal Server Error")
175
+ end
176
+
177
+ end # class HttpServer
178
+
@@ -0,0 +1,76 @@
1
+ #
2
+ # Marshalling of XML-RPC methodCall and methodResponse
3
+ #
4
+ # Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
5
+ #
6
+ # $Id: marshal.rb 11708 2007-02-12 23:01:19Z shyouhei $
7
+ #
8
+
9
+ require "xmlrpc/parser"
10
+ require "xmlrpc/create"
11
+ require "xmlrpc/config"
12
+ require "xmlrpc/utils"
13
+
14
+ module XMLRPC
15
+
16
+ class Marshal
17
+ include ParserWriterChooseMixin
18
+
19
+ # class methods -------------------------------
20
+
21
+ class << self
22
+
23
+ def dump_call( methodName, *params )
24
+ new.dump_call( methodName, *params )
25
+ end
26
+
27
+ def dump_response( param )
28
+ new.dump_response( param )
29
+ end
30
+
31
+ def load_call( stringOrReadable )
32
+ new.load_call( stringOrReadable )
33
+ end
34
+
35
+ def load_response( stringOrReadable )
36
+ new.load_response( stringOrReadable )
37
+ end
38
+
39
+ alias dump dump_response
40
+ alias load load_response
41
+
42
+ end # class self
43
+
44
+ # instance methods ----------------------------
45
+
46
+ def initialize( parser = nil, writer = nil )
47
+ set_parser( parser )
48
+ set_writer( writer )
49
+ end
50
+
51
+ def dump_call( methodName, *params )
52
+ create.methodCall( methodName, *params )
53
+ end
54
+
55
+ def dump_response( param )
56
+ create.methodResponse( ! param.kind_of?( XMLRPC::FaultException ) , param )
57
+ end
58
+
59
+ ##
60
+ # returns [ methodname, params ]
61
+ #
62
+ def load_call( stringOrReadable )
63
+ parser.parseMethodCall( stringOrReadable )
64
+ end
65
+
66
+ ##
67
+ # returns paramOrFault
68
+ #
69
+ def load_response( stringOrReadable )
70
+ parser.parseMethodResponse( stringOrReadable )[1]
71
+ end
72
+
73
+ end # class Marshal
74
+
75
+ end
76
+
@@ -0,0 +1,813 @@
1
+ #
2
+ # Parser for XML-RPC call and response
3
+ #
4
+ # Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
5
+ #
6
+ # $Id: parser.rb 13771 2007-10-24 23:04:42Z jeg2 $
7
+ #
8
+
9
+
10
+ require "date"
11
+ require "xmlrpc/base64"
12
+ require "xmlrpc/datetime"
13
+
14
+
15
+ # add some methods to NQXML::Node
16
+ module NQXML
17
+ class Node
18
+
19
+ def removeChild(node)
20
+ @children.delete(node)
21
+ end
22
+ def childNodes
23
+ @children
24
+ end
25
+ def hasChildNodes
26
+ not @children.empty?
27
+ end
28
+ def [] (index)
29
+ @children[index]
30
+ end
31
+
32
+ def nodeType
33
+ if @entity.instance_of? NQXML::Text then :TEXT
34
+ elsif @entity.instance_of? NQXML::Comment then :COMMENT
35
+ #elsif @entity.instance_of? NQXML::Element then :ELEMENT
36
+ elsif @entity.instance_of? NQXML::Tag then :ELEMENT
37
+ else :ELSE
38
+ end
39
+ end
40
+
41
+ def nodeValue
42
+ #TODO: error when wrong Entity-type
43
+ @entity.text
44
+ end
45
+ def nodeName
46
+ #TODO: error when wrong Entity-type
47
+ @entity.name
48
+ end
49
+ end # class Node
50
+ end # module NQXML
51
+
52
+ module XMLRPC
53
+
54
+ class FaultException < StandardError
55
+ attr_reader :faultCode, :faultString
56
+
57
+ alias message faultString
58
+
59
+ def initialize(faultCode, faultString)
60
+ @faultCode = faultCode
61
+ @faultString = faultString
62
+ end
63
+
64
+ # returns a hash
65
+ def to_h
66
+ {"faultCode" => @faultCode, "faultString" => @faultString}
67
+ end
68
+ end
69
+
70
+ module Convert
71
+ def self.int(str)
72
+ str.to_i
73
+ end
74
+
75
+ def self.boolean(str)
76
+ case str
77
+ when "0" then false
78
+ when "1" then true
79
+ else
80
+ raise "RPC-value of type boolean is wrong"
81
+ end
82
+ end
83
+
84
+ def self.double(str)
85
+ str.to_f
86
+ end
87
+
88
+ def self.dateTime(str)
89
+ case str
90
+ when /^(-?\d\d\d\d)-?(\d\d)-?(\d\d)T(\d\d):(\d\d):(\d\d)(?:Z|([+-])(\d\d):?(\d\d))?$/
91
+ a = [$1, $2, $3, $4, $5, $6].collect{|i| i.to_i}
92
+ if $7
93
+ ofs = $8.to_i*3600 + $9.to_i*60
94
+ ofs = -ofs if $7=='+'
95
+ utc = Time.utc(*a) + ofs
96
+ a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ]
97
+ end
98
+ XMLRPC::DateTime.new(*a)
99
+ when /^(-?\d\d)-?(\d\d)-?(\d\d)T(\d\d):(\d\d):(\d\d)(Z|([+-]\d\d):(\d\d))?$/
100
+ a = [$1, $2, $3, $4, $5, $6].collect{|i| i.to_i}
101
+ if a[0] < 70
102
+ a[0] += 2000
103
+ else
104
+ a[0] += 1900
105
+ end
106
+ if $7
107
+ ofs = $8.to_i*3600 + $9.to_i*60
108
+ ofs = -ofs if $7=='+'
109
+ utc = Time.utc(*a) + ofs
110
+ a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ]
111
+ end
112
+ XMLRPC::DateTime.new(*a)
113
+ else
114
+ raise "wrong dateTime.iso8601 format " + str
115
+ end
116
+ end
117
+
118
+ def self.base64(str)
119
+ XMLRPC::Base64.decode(str)
120
+ end
121
+
122
+ def self.struct(hash)
123
+ # convert to marhalled object
124
+ klass = hash["___class___"]
125
+ if klass.nil? or Config::ENABLE_MARSHALLING == false
126
+ hash
127
+ else
128
+ begin
129
+ mod = Module
130
+ klass.split("::").each {|const| mod = mod.const_get(const.strip)}
131
+
132
+ obj = mod.allocate
133
+
134
+ hash.delete "___class___"
135
+ hash.each {|key, value|
136
+ obj.instance_variable_set("@#{ key }", value) if key =~ /^([\w_][\w_0-9]*)$/
137
+ }
138
+ obj
139
+ rescue
140
+ hash
141
+ end
142
+ end
143
+ end
144
+
145
+ def self.fault(hash)
146
+ if hash.kind_of? Hash and hash.size == 2 and
147
+ hash.has_key? "faultCode" and hash.has_key? "faultString" and
148
+ hash["faultCode"].kind_of? Integer and hash["faultString"].kind_of? String
149
+
150
+ XMLRPC::FaultException.new(hash["faultCode"], hash["faultString"])
151
+ else
152
+ raise "wrong fault-structure: #{hash.inspect}"
153
+ end
154
+ end
155
+
156
+ end # module Convert
157
+
158
+ module XMLParser
159
+
160
+ class AbstractTreeParser
161
+
162
+ def parseMethodResponse(str)
163
+ methodResponse_document(createCleanedTree(str))
164
+ end
165
+
166
+ def parseMethodCall(str)
167
+ methodCall_document(createCleanedTree(str))
168
+ end
169
+
170
+ private
171
+
172
+ #
173
+ # remove all whitespaces but in the tags i4, int, boolean....
174
+ # and all comments
175
+ #
176
+ def removeWhitespacesAndComments(node)
177
+ remove = []
178
+ childs = node.childNodes.to_a
179
+ childs.each do |nd|
180
+ case _nodeType(nd)
181
+ when :TEXT
182
+ # TODO: add nil?
183
+ unless %w(i4 int boolean string double dateTime.iso8601 base64).include? node.nodeName
184
+
185
+ if node.nodeName == "value"
186
+ if not node.childNodes.to_a.detect {|n| _nodeType(n) == :ELEMENT}.nil?
187
+ remove << nd if nd.nodeValue.strip == ""
188
+ end
189
+ else
190
+ remove << nd if nd.nodeValue.strip == ""
191
+ end
192
+ end
193
+ when :COMMENT
194
+ remove << nd
195
+ else
196
+ removeWhitespacesAndComments(nd)
197
+ end
198
+ end
199
+
200
+ remove.each { |i| node.removeChild(i) }
201
+ end
202
+
203
+
204
+ def nodeMustBe(node, name)
205
+ cmp = case name
206
+ when Array
207
+ name.include?(node.nodeName)
208
+ when String
209
+ name == node.nodeName
210
+ else
211
+ raise "error"
212
+ end
213
+
214
+ if not cmp then
215
+ raise "wrong xml-rpc (name)"
216
+ end
217
+
218
+ node
219
+ end
220
+
221
+ #
222
+ # returns, when successfully the only child-node
223
+ #
224
+ def hasOnlyOneChild(node, name=nil)
225
+ if node.childNodes.to_a.size != 1
226
+ raise "wrong xml-rpc (size)"
227
+ end
228
+ if name != nil then
229
+ nodeMustBe(node.firstChild, name)
230
+ end
231
+ end
232
+
233
+
234
+ def assert(b)
235
+ if not b then
236
+ raise "assert-fail"
237
+ end
238
+ end
239
+
240
+ # the node `node` has empty string or string
241
+ def text_zero_one(node)
242
+ nodes = node.childNodes.to_a.size
243
+
244
+ if nodes == 1
245
+ text(node.firstChild)
246
+ elsif nodes == 0
247
+ ""
248
+ else
249
+ raise "wrong xml-rpc (size)"
250
+ end
251
+ end
252
+
253
+
254
+ def integer(node)
255
+ #TODO: check string for float because to_i returnsa
256
+ # 0 when wrong string
257
+ nodeMustBe(node, %w(i4 int))
258
+ hasOnlyOneChild(node)
259
+
260
+ Convert.int(text(node.firstChild))
261
+ end
262
+
263
+ def boolean(node)
264
+ nodeMustBe(node, "boolean")
265
+ hasOnlyOneChild(node)
266
+
267
+ Convert.boolean(text(node.firstChild))
268
+ end
269
+
270
+ def v_nil(node)
271
+ nodeMustBe(node, "nil")
272
+ assert( node.childNodes.to_a.size == 0 )
273
+ nil
274
+ end
275
+
276
+ def string(node)
277
+ nodeMustBe(node, "string")
278
+ text_zero_one(node)
279
+ end
280
+
281
+ def double(node)
282
+ #TODO: check string for float because to_f returnsa
283
+ # 0.0 when wrong string
284
+ nodeMustBe(node, "double")
285
+ hasOnlyOneChild(node)
286
+
287
+ Convert.double(text(node.firstChild))
288
+ end
289
+
290
+ def dateTime(node)
291
+ nodeMustBe(node, "dateTime.iso8601")
292
+ hasOnlyOneChild(node)
293
+
294
+ Convert.dateTime( text(node.firstChild) )
295
+ end
296
+
297
+ def base64(node)
298
+ nodeMustBe(node, "base64")
299
+ #hasOnlyOneChild(node)
300
+
301
+ Convert.base64(text_zero_one(node))
302
+ end
303
+
304
+ def member(node)
305
+ nodeMustBe(node, "member")
306
+ assert( node.childNodes.to_a.size == 2 )
307
+
308
+ [ name(node[0]), value(node[1]) ]
309
+ end
310
+
311
+ def name(node)
312
+ nodeMustBe(node, "name")
313
+ #hasOnlyOneChild(node)
314
+ text_zero_one(node)
315
+ end
316
+
317
+ def array(node)
318
+ nodeMustBe(node, "array")
319
+ hasOnlyOneChild(node, "data")
320
+ data(node.firstChild)
321
+ end
322
+
323
+ def data(node)
324
+ nodeMustBe(node, "data")
325
+
326
+ node.childNodes.to_a.collect do |val|
327
+ value(val)
328
+ end
329
+ end
330
+
331
+ def param(node)
332
+ nodeMustBe(node, "param")
333
+ hasOnlyOneChild(node, "value")
334
+ value(node.firstChild)
335
+ end
336
+
337
+ def methodResponse(node)
338
+ nodeMustBe(node, "methodResponse")
339
+ hasOnlyOneChild(node, %w(params fault))
340
+ child = node.firstChild
341
+
342
+ case child.nodeName
343
+ when "params"
344
+ [ true, params(child,false) ]
345
+ when "fault"
346
+ [ false, fault(child) ]
347
+ else
348
+ raise "unexpected error"
349
+ end
350
+
351
+ end
352
+
353
+ def methodName(node)
354
+ nodeMustBe(node, "methodName")
355
+ hasOnlyOneChild(node)
356
+ text(node.firstChild)
357
+ end
358
+
359
+ def params(node, call=true)
360
+ nodeMustBe(node, "params")
361
+
362
+ if call
363
+ node.childNodes.to_a.collect do |n|
364
+ param(n)
365
+ end
366
+ else # response (only one param)
367
+ hasOnlyOneChild(node)
368
+ param(node.firstChild)
369
+ end
370
+ end
371
+
372
+ def fault(node)
373
+ nodeMustBe(node, "fault")
374
+ hasOnlyOneChild(node, "value")
375
+ f = value(node.firstChild)
376
+ Convert.fault(f)
377
+ end
378
+
379
+
380
+
381
+ # _nodeType is defined in the subclass
382
+ def text(node)
383
+ assert( _nodeType(node) == :TEXT )
384
+ assert( node.hasChildNodes == false )
385
+ assert( node.nodeValue != nil )
386
+
387
+ node.nodeValue.to_s
388
+ end
389
+
390
+ def struct(node)
391
+ nodeMustBe(node, "struct")
392
+
393
+ hash = {}
394
+ node.childNodes.to_a.each do |me|
395
+ n, v = member(me)
396
+ hash[n] = v
397
+ end
398
+
399
+ Convert.struct(hash)
400
+ end
401
+
402
+
403
+ def value(node)
404
+ nodeMustBe(node, "value")
405
+ nodes = node.childNodes.to_a.size
406
+ if nodes == 0
407
+ return ""
408
+ elsif nodes > 1
409
+ raise "wrong xml-rpc (size)"
410
+ end
411
+
412
+ child = node.firstChild
413
+
414
+ case _nodeType(child)
415
+ when :TEXT
416
+ text_zero_one(node)
417
+ when :ELEMENT
418
+ case child.nodeName
419
+ when "i4", "int" then integer(child)
420
+ when "boolean" then boolean(child)
421
+ when "string" then string(child)
422
+ when "double" then double(child)
423
+ when "dateTime.iso8601" then dateTime(child)
424
+ when "base64" then base64(child)
425
+ when "struct" then struct(child)
426
+ when "array" then array(child)
427
+ when "nil"
428
+ if Config::ENABLE_NIL_PARSER
429
+ v_nil(child)
430
+ else
431
+ raise "wrong/unknown XML-RPC type 'nil'"
432
+ end
433
+ else
434
+ raise "wrong/unknown XML-RPC type"
435
+ end
436
+ else
437
+ raise "wrong type of node"
438
+ end
439
+
440
+ end
441
+
442
+ def methodCall(node)
443
+ nodeMustBe(node, "methodCall")
444
+ assert( (1..2).include?( node.childNodes.to_a.size ) )
445
+ name = methodName(node[0])
446
+
447
+ if node.childNodes.to_a.size == 2 then
448
+ pa = params(node[1])
449
+ else # no parameters given
450
+ pa = []
451
+ end
452
+ [name, pa]
453
+ end
454
+
455
+ end # module TreeParserMixin
456
+
457
+ class AbstractStreamParser
458
+ def parseMethodResponse(str)
459
+ parser = @parser_class.new
460
+ parser.parse(str)
461
+ raise "No valid method response!" if parser.method_name != nil
462
+ if parser.fault != nil
463
+ # is a fault structure
464
+ [false, parser.fault]
465
+ else
466
+ # is a normal return value
467
+ raise "Missing return value!" if parser.params.size == 0
468
+ raise "Too many return values. Only one allowed!" if parser.params.size > 1
469
+ [true, parser.params[0]]
470
+ end
471
+ end
472
+
473
+ def parseMethodCall(str)
474
+ parser = @parser_class.new
475
+ parser.parse(str)
476
+ raise "No valid method call - missing method name!" if parser.method_name.nil?
477
+ [parser.method_name, parser.params]
478
+ end
479
+ end
480
+
481
+ module StreamParserMixin
482
+ attr_reader :params
483
+ attr_reader :method_name
484
+ attr_reader :fault
485
+
486
+ def initialize(*a)
487
+ super(*a)
488
+ @params = []
489
+ @values = []
490
+ @val_stack = []
491
+
492
+ @names = []
493
+ @name = []
494
+
495
+ @structs = []
496
+ @struct = {}
497
+
498
+ @method_name = nil
499
+ @fault = nil
500
+
501
+ @data = nil
502
+ end
503
+
504
+ def startElement(name, attrs=[])
505
+ @data = nil
506
+ case name
507
+ when "value"
508
+ @value = nil
509
+ when "nil"
510
+ raise "wrong/unknown XML-RPC type 'nil'" unless Config::ENABLE_NIL_PARSER
511
+ @value = :nil
512
+ when "array"
513
+ @val_stack << @values
514
+ @values = []
515
+ when "struct"
516
+ @names << @name
517
+ @name = []
518
+
519
+ @structs << @struct
520
+ @struct = {}
521
+ end
522
+ end
523
+
524
+ def endElement(name)
525
+ @data ||= ""
526
+ case name
527
+ when "string"
528
+ @value = @data
529
+ when "i4", "int"
530
+ @value = Convert.int(@data)
531
+ when "boolean"
532
+ @value = Convert.boolean(@data)
533
+ when "double"
534
+ @value = Convert.double(@data)
535
+ when "dateTime.iso8601"
536
+ @value = Convert.dateTime(@data)
537
+ when "base64"
538
+ @value = Convert.base64(@data)
539
+ when "value"
540
+ @value = @data if @value.nil?
541
+ @values << (@value == :nil ? nil : @value)
542
+ when "array"
543
+ @value = @values
544
+ @values = @val_stack.pop
545
+ when "struct"
546
+ @value = Convert.struct(@struct)
547
+
548
+ @name = @names.pop
549
+ @struct = @structs.pop
550
+ when "name"
551
+ @name[0] = @data
552
+ when "member"
553
+ @struct[@name[0]] = @values.pop
554
+
555
+ when "param"
556
+ @params << @values[0]
557
+ @values = []
558
+
559
+ when "fault"
560
+ @fault = Convert.fault(@values[0])
561
+
562
+ when "methodName"
563
+ @method_name = @data
564
+ end
565
+
566
+ @data = nil
567
+ end
568
+
569
+ def character(data)
570
+ if @data
571
+ @data << data
572
+ else
573
+ @data = data
574
+ end
575
+ end
576
+
577
+ end # module StreamParserMixin
578
+
579
+ # ---------------------------------------------------------------------------
580
+ class XMLStreamParser < AbstractStreamParser
581
+ def initialize
582
+ require "xmlparser"
583
+ @parser_class = Class.new(::XMLParser) {
584
+ include StreamParserMixin
585
+ }
586
+ end
587
+ end # class XMLStreamParser
588
+ # ---------------------------------------------------------------------------
589
+ class NQXMLStreamParser < AbstractStreamParser
590
+ def initialize
591
+ require "nqxml/streamingparser"
592
+ @parser_class = XMLRPCParser
593
+ end
594
+
595
+ class XMLRPCParser
596
+ include StreamParserMixin
597
+
598
+ def parse(str)
599
+ parser = NQXML::StreamingParser.new(str)
600
+ parser.each do |ele|
601
+ case ele
602
+ when NQXML::Text
603
+ @data = ele.text
604
+ #character(ele.text)
605
+ when NQXML::Tag
606
+ if ele.isTagEnd
607
+ endElement(ele.name)
608
+ else
609
+ startElement(ele.name, ele.attrs)
610
+ end
611
+ end
612
+ end # do
613
+ end # method parse
614
+ end # class XMLRPCParser
615
+
616
+ end # class NQXMLStreamParser
617
+ # ---------------------------------------------------------------------------
618
+ class XMLTreeParser < AbstractTreeParser
619
+
620
+ def initialize
621
+ require "xmltreebuilder"
622
+
623
+ # The new XMLParser library (0.6.2+) uses a slightly different DOM implementation.
624
+ # The following code removes the differences between both versions.
625
+ if defined? XML::DOM::Builder
626
+ return if defined? XML::DOM::Node::DOCUMENT # code below has been already executed
627
+ klass = XML::DOM::Node
628
+ klass.const_set("DOCUMENT", klass::DOCUMENT_NODE)
629
+ klass.const_set("TEXT", klass::TEXT_NODE)
630
+ klass.const_set("COMMENT", klass::COMMENT_NODE)
631
+ klass.const_set("ELEMENT", klass::ELEMENT_NODE)
632
+ end
633
+ end
634
+
635
+ private
636
+
637
+ def _nodeType(node)
638
+ tp = node.nodeType
639
+ if tp == XML::SimpleTree::Node::TEXT then :TEXT
640
+ elsif tp == XML::SimpleTree::Node::COMMENT then :COMMENT
641
+ elsif tp == XML::SimpleTree::Node::ELEMENT then :ELEMENT
642
+ else :ELSE
643
+ end
644
+ end
645
+
646
+
647
+ def methodResponse_document(node)
648
+ assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT )
649
+ hasOnlyOneChild(node, "methodResponse")
650
+
651
+ methodResponse(node.firstChild)
652
+ end
653
+
654
+ def methodCall_document(node)
655
+ assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT )
656
+ hasOnlyOneChild(node, "methodCall")
657
+
658
+ methodCall(node.firstChild)
659
+ end
660
+
661
+ def createCleanedTree(str)
662
+ doc = XML::SimpleTreeBuilder.new.parse(str)
663
+ doc.documentElement.normalize
664
+ removeWhitespacesAndComments(doc)
665
+ doc
666
+ end
667
+
668
+ end # class XMLParser
669
+ # ---------------------------------------------------------------------------
670
+ class NQXMLTreeParser < AbstractTreeParser
671
+
672
+ def initialize
673
+ require "nqxml/treeparser"
674
+ end
675
+
676
+ private
677
+
678
+ def _nodeType(node)
679
+ node.nodeType
680
+ end
681
+
682
+ def methodResponse_document(node)
683
+ methodResponse(node)
684
+ end
685
+
686
+ def methodCall_document(node)
687
+ methodCall(node)
688
+ end
689
+
690
+ def createCleanedTree(str)
691
+ doc = ::NQXML::TreeParser.new(str).document.rootNode
692
+ removeWhitespacesAndComments(doc)
693
+ doc
694
+ end
695
+
696
+ end # class NQXMLTreeParser
697
+ # ---------------------------------------------------------------------------
698
+ class REXMLStreamParser < AbstractStreamParser
699
+ def initialize
700
+ require "rexml/document"
701
+ @parser_class = StreamListener
702
+ end
703
+
704
+ class StreamListener
705
+ include StreamParserMixin
706
+
707
+ alias :tag_start :startElement
708
+ alias :tag_end :endElement
709
+ alias :text :character
710
+ alias :cdata :character
711
+
712
+ def method_missing(*a)
713
+ # ignore
714
+ end
715
+
716
+ def parse(str)
717
+ parser = REXML::Document.parse_stream(str, self)
718
+ end
719
+ end
720
+
721
+ end
722
+ # ---------------------------------------------------------------------------
723
+ class XMLScanStreamParser < AbstractStreamParser
724
+ def initialize
725
+ require "xmlscan/parser"
726
+ @parser_class = XMLScanParser
727
+ end
728
+
729
+ class XMLScanParser
730
+ include StreamParserMixin
731
+
732
+ Entities = {
733
+ "lt" => "<",
734
+ "gt" => ">",
735
+ "amp" => "&",
736
+ "quot" => '"',
737
+ "apos" => "'"
738
+ }
739
+
740
+ def parse(str)
741
+ parser = XMLScan::XMLParser.new(self)
742
+ parser.parse(str)
743
+ end
744
+
745
+ alias :on_stag :startElement
746
+ alias :on_etag :endElement
747
+
748
+ def on_stag_end(name); end
749
+
750
+ def on_stag_end_empty(name)
751
+ startElement(name)
752
+ endElement(name)
753
+ end
754
+
755
+ def on_chardata(str)
756
+ character(str)
757
+ end
758
+
759
+ def on_cdata(str)
760
+ character(str)
761
+ end
762
+
763
+ def on_entityref(ent)
764
+ str = Entities[ent]
765
+ if str
766
+ character(str)
767
+ else
768
+ raise "unknown entity"
769
+ end
770
+ end
771
+
772
+ def on_charref(code)
773
+ character(code.chr)
774
+ end
775
+
776
+ def on_charref_hex(code)
777
+ character(code.chr)
778
+ end
779
+
780
+ def method_missing(*a)
781
+ end
782
+
783
+ # TODO: call/implement?
784
+ # valid_name?
785
+ # valid_chardata?
786
+ # valid_char?
787
+ # parse_error
788
+
789
+ end
790
+ end
791
+ # ---------------------------------------------------------------------------
792
+ XMLParser = XMLTreeParser
793
+ NQXMLParser = NQXMLTreeParser
794
+
795
+ Classes = [XMLStreamParser, XMLTreeParser,
796
+ NQXMLStreamParser, NQXMLTreeParser,
797
+ REXMLStreamParser, XMLScanStreamParser]
798
+
799
+ # yields an instance of each installed parser
800
+ def self.each_installed_parser
801
+ XMLRPC::XMLParser::Classes.each do |klass|
802
+ begin
803
+ yield klass.new
804
+ rescue LoadError
805
+ end
806
+ end
807
+ end
808
+
809
+ end # module XMLParser
810
+
811
+
812
+ end # module XMLRPC
813
+