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,780 @@
1
+ =begin
2
+ = xmlrpc/server.rb
3
+ Copyright (C) 2001, 2002, 2003, 2005 by Michael Neumann (mneumann@ntecs.de)
4
+
5
+ Released under the same term of license as Ruby.
6
+
7
+ = Classes
8
+ * ((<XMLRPC::BasicServer>))
9
+ * ((<XMLRPC::CGIServer>))
10
+ * ((<XMLRPC::ModRubyServer>))
11
+ * ((<XMLRPC::Server>))
12
+ * ((<XMLRPC::WEBrickServlet>))
13
+
14
+ = XMLRPC::BasicServer
15
+ == Description
16
+ Is the base class for all XML-RPC server-types (CGI, standalone).
17
+ You can add handler and set a default handler.
18
+ Do not use this server, as this is/should be an abstract class.
19
+
20
+ === How the method to call is found
21
+ The arity (number of accepted arguments) of a handler (method or (({Proc})) object) is
22
+ compared to the given arguments submitted by the client for a RPC ((-Remote Procedure Call-)).
23
+ A handler is only called if it accepts the number of arguments, otherwise the search
24
+ for another handler will go on. When at the end no handler was found,
25
+ the ((<default_handler|XMLRPC::BasicServer#set_default_handler>)) will be called.
26
+ With this technique it is possible to do overloading by number of parameters, but
27
+ only for (({Proc})) handler, because you cannot define two methods of the same name in
28
+ the same class.
29
+
30
+
31
+ == Class Methods
32
+ --- XMLRPC::BasicServer.new( class_delim="." )
33
+ Creates a new (({XMLRPC::BasicServer})) instance, which should not be
34
+ done, because (({XMLRPC::BasicServer})) is an abstract class. This
35
+ method should be called from a subclass indirectly by a (({super})) call
36
+ in the method (({initialize})). The paramter ((|class_delim|)) is used
37
+ in ((<add_handler|XMLRPC::BasicServer#add_handler>)) when an object is
38
+ added as handler, to delimit the object-prefix and the method-name.
39
+
40
+ == Instance Methods
41
+ --- XMLRPC::BasicServer#add_handler( name, signature=nil, help=nil ) { aBlock }
42
+ Adds ((|aBlock|)) to the list of handlers, with ((|name|)) as the name of the method.
43
+ Parameters ((|signature|)) and ((|help|)) are used by the Introspection method if specified,
44
+ where ((|signature|)) is either an Array containing strings each representing a type of it's
45
+ signature (the first is the return value) or an Array of Arrays if the method has multiple
46
+ signatures. Value type-names are "int, boolean, double, string, dateTime.iso8601, base64, array, struct".
47
+
48
+ Parameter ((|help|)) is a String with informations about how to call this method etc.
49
+
50
+ A handler method or code-block can return the types listed at
51
+ ((<XMLRPC::Client#call|URL:client.html#index:0>)).
52
+ When a method fails, it can tell it the client by throwing an
53
+ (({XMLRPC::FaultException})) like in this example:
54
+ s.add_handler("michael.div") do |a,b|
55
+ if b == 0
56
+ raise XMLRPC::FaultException.new(1, "division by zero")
57
+ else
58
+ a / b
59
+ end
60
+ end
61
+ The client gets in the case of (({b==0})) an object back of type
62
+ (({XMLRPC::FaultException})) that has a ((|faultCode|)) and ((|faultString|))
63
+ field.
64
+
65
+ --- XMLRPC::BasicServer#add_handler( prefix, obj )
66
+ This is the second form of ((<add_handler|XMLRPC::BasicServer#add_handler>)).
67
+ To add an object write:
68
+ server.add_handler("michael", MyHandlerClass.new)
69
+ All public methods of (({MyHandlerClass})) are accessible to
70
+ the XML-RPC clients by (('michael."name of method"')). This is
71
+ where the ((|class_delim|)) in ((<new|XMLRPC::BasicServer.new>))
72
+ has it's role, a XML-RPC method-name is defined by
73
+ ((|prefix|)) + ((|class_delim|)) + (('"name of method"')).
74
+
75
+ --- XMLRPC::BasicServer#add_handler( interface, obj )
76
+ This is the third form of ((<add_handler|XMLRPC::BasicServer#add_handler>)).
77
+
78
+ Use (({XMLRPC::interface})) to generate an ServiceInterface object, which
79
+ represents an interface (with signature and help text) for a handler class.
80
+
81
+ Parameter ((|interface|)) must be of type (({XMLRPC::ServiceInterface})).
82
+ Adds all methods of ((|obj|)) which are defined in ((|interface|)) to the
83
+ server.
84
+
85
+ This is the recommended way of adding services to a server!
86
+
87
+
88
+ --- XMLRPC::BasicServer#get_default_handler
89
+ Returns the default-handler, which is called when no handler for
90
+ a method-name is found.
91
+ It is a (({Proc})) object or (({nil})).
92
+
93
+ --- XMLRPC::BasicServer#set_default_handler ( &handler )
94
+ Sets ((|handler|)) as the default-handler, which is called when
95
+ no handler for a method-name is found. ((|handler|)) is a code-block.
96
+ The default-handler is called with the (XML-RPC) method-name as first argument, and
97
+ the other arguments are the parameters given by the client-call.
98
+
99
+ If no block is specified the default of (({XMLRPC::BasicServer})) is used, which raises a
100
+ XMLRPC::FaultException saying "method missing".
101
+
102
+
103
+ --- XMLRPC::BasicServer#set_writer( writer )
104
+ Sets the XML writer to use for generating XML output.
105
+ Should be an instance of a class from module (({XMLRPC::XMLWriter})).
106
+ If this method is not called, then (({XMLRPC::Config::DEFAULT_WRITER})) is used.
107
+
108
+ --- XMLRPC::BasicServer#set_parser( parser )
109
+ Sets the XML parser to use for parsing XML documents.
110
+ Should be an instance of a class from module (({XMLRPC::XMLParser})).
111
+ If this method is not called, then (({XMLRPC::Config::DEFAULT_PARSER})) is used.
112
+
113
+ --- XMLRPC::BasicServer#add_introspection
114
+ Adds the introspection handlers "system.listMethods", "system.methodSignature" and "system.methodHelp",
115
+ where only the first one works.
116
+
117
+ --- XMLRPC::BasicServer#add_multicall
118
+ Adds the multi-call handler "system.multicall".
119
+
120
+ --- XMLRPC::BasicServer#get_service_hook
121
+ Returns the service-hook, which is called on each service request (RPC) unless it's (({nil})).
122
+
123
+ --- XMLRPC::BasicServer#set_service_hook ( &handler )
124
+ A service-hook is called for each service request (RPC).
125
+ You can use a service-hook for example to wrap existing methods and catch exceptions of them or
126
+ convert values to values recognized by XMLRPC. You can disable it by passing (({nil})) as parameter
127
+ ((|handler|)) .
128
+
129
+ The service-hook is called with a (({Proc})) object and with the parameters for this (({Proc})).
130
+ An example:
131
+
132
+ server.set_service_hook {|obj, *args|
133
+ begin
134
+ ret = obj.call(*args) # call the original service-method
135
+ # could convert the return value
136
+ resuce
137
+ # rescue exceptions
138
+ end
139
+ }
140
+
141
+ =end
142
+
143
+
144
+
145
+ require "xmlrpc/parser"
146
+ require "xmlrpc/create"
147
+ require "xmlrpc/config"
148
+ require "xmlrpc/utils" # ParserWriterChooseMixin
149
+
150
+
151
+
152
+ module XMLRPC
153
+
154
+
155
+ class BasicServer
156
+
157
+ include ParserWriterChooseMixin
158
+ include ParseContentType
159
+
160
+ ERR_METHOD_MISSING = 1
161
+ ERR_UNCAUGHT_EXCEPTION = 2
162
+ ERR_MC_WRONG_PARAM = 3
163
+ ERR_MC_MISSING_PARAMS = 4
164
+ ERR_MC_MISSING_METHNAME = 5
165
+ ERR_MC_RECURSIVE_CALL = 6
166
+ ERR_MC_WRONG_PARAM_PARAMS = 7
167
+ ERR_MC_EXPECTED_STRUCT = 8
168
+
169
+
170
+ def initialize(class_delim=".")
171
+ @handler = []
172
+ @default_handler = nil
173
+ @service_hook = nil
174
+
175
+ @class_delim = class_delim
176
+ @create = nil
177
+ @parser = nil
178
+
179
+ add_multicall if Config::ENABLE_MULTICALL
180
+ add_introspection if Config::ENABLE_INTROSPECTION
181
+ end
182
+
183
+ def add_handler(prefix, obj_or_signature=nil, help=nil, &block)
184
+ if block_given?
185
+ # proc-handler
186
+ @handler << [prefix, block, obj_or_signature, help]
187
+ else
188
+ if prefix.kind_of? String
189
+ # class-handler
190
+ raise ArgumentError, "Expected non-nil value" if obj_or_signature.nil?
191
+ @handler << [prefix + @class_delim, obj_or_signature]
192
+ elsif prefix.kind_of? XMLRPC::Service::BasicInterface
193
+ # class-handler with interface
194
+ # add all methods
195
+ @handler += prefix.get_methods(obj_or_signature, @class_delim)
196
+ else
197
+ raise ArgumentError, "Wrong type for parameter 'prefix'"
198
+ end
199
+ end
200
+ self
201
+ end
202
+
203
+ def get_service_hook
204
+ @service_hook
205
+ end
206
+
207
+ def set_service_hook(&handler)
208
+ @service_hook = handler
209
+ self
210
+ end
211
+
212
+ def get_default_handler
213
+ @default_handler
214
+ end
215
+
216
+ def set_default_handler (&handler)
217
+ @default_handler = handler
218
+ self
219
+ end
220
+
221
+ def add_multicall
222
+ add_handler("system.multicall", %w(array array), "Multicall Extension") do |arrStructs|
223
+ unless arrStructs.is_a? Array
224
+ raise XMLRPC::FaultException.new(ERR_MC_WRONG_PARAM, "system.multicall expects an array")
225
+ end
226
+
227
+ arrStructs.collect {|call|
228
+ if call.is_a? Hash
229
+ methodName = call["methodName"]
230
+ params = call["params"]
231
+
232
+ if params.nil?
233
+ multicall_fault(ERR_MC_MISSING_PARAMS, "Missing params")
234
+ elsif methodName.nil?
235
+ multicall_fault(ERR_MC_MISSING_METHNAME, "Missing methodName")
236
+ else
237
+ if methodName == "system.multicall"
238
+ multicall_fault(ERR_MC_RECURSIVE_CALL, "Recursive system.multicall forbidden")
239
+ else
240
+ unless params.is_a? Array
241
+ multicall_fault(ERR_MC_WRONG_PARAM_PARAMS, "Parameter params have to be an Array")
242
+ else
243
+ ok, val = call_method(methodName, *params)
244
+ if ok
245
+ # correct return value
246
+ [val]
247
+ else
248
+ # exception
249
+ multicall_fault(val.faultCode, val.faultString)
250
+ end
251
+ end
252
+ end
253
+ end
254
+
255
+ else
256
+ multicall_fault(ERR_MC_EXPECTED_STRUCT, "system.multicall expected struct")
257
+ end
258
+ }
259
+ end # end add_handler
260
+ self
261
+ end
262
+
263
+ def add_introspection
264
+ add_handler("system.listMethods",%w(array), "List methods available on this XML-RPC server") do
265
+ methods = []
266
+ @handler.each do |name, obj|
267
+ if obj.kind_of? Proc
268
+ methods << name
269
+ else
270
+ obj.methods.each {|meth| methods << name + meth}
271
+ end
272
+ end
273
+ methods
274
+ end
275
+
276
+ add_handler("system.methodSignature", %w(array string), "Returns method signature") do |meth|
277
+ sigs = []
278
+ @handler.each do |name, obj, sig|
279
+ if obj.kind_of? Proc and sig != nil and name == meth
280
+ if sig[0].kind_of? Array
281
+ # sig contains multiple signatures, e.g. [["array"], ["array", "string"]]
282
+ sig.each {|s| sigs << s}
283
+ else
284
+ # sig is a single signature, e.g. ["array"]
285
+ sigs << sig
286
+ end
287
+ end
288
+ end
289
+ sigs.uniq! || sigs # remove eventually duplicated signatures
290
+ end
291
+
292
+ add_handler("system.methodHelp", %w(string string), "Returns help on using this method") do |meth|
293
+ help = nil
294
+ @handler.each do |name, obj, sig, hlp|
295
+ if obj.kind_of? Proc and name == meth
296
+ help = hlp
297
+ break
298
+ end
299
+ end
300
+ help || ""
301
+ end
302
+
303
+ self
304
+ end
305
+
306
+
307
+
308
+ def process(data)
309
+ method, params = parser().parseMethodCall(data)
310
+ handle(method, *params)
311
+ end
312
+
313
+ private # --------------------------------------------------------------
314
+
315
+ def multicall_fault(nr, str)
316
+ {"faultCode" => nr, "faultString" => str}
317
+ end
318
+
319
+ #
320
+ # method dispatch
321
+ #
322
+ def dispatch(methodname, *args)
323
+ for name, obj in @handler
324
+ if obj.kind_of? Proc
325
+ next unless methodname == name
326
+ else
327
+ next unless methodname =~ /^#{name}(.+)$/
328
+ next unless obj.respond_to? $1
329
+ obj = obj.method($1)
330
+ end
331
+
332
+ if check_arity(obj, args.size)
333
+ if @service_hook.nil?
334
+ return obj.call(*args)
335
+ else
336
+ return @service_hook.call(obj, *args)
337
+ end
338
+ end
339
+ end
340
+
341
+ if @default_handler.nil?
342
+ raise XMLRPC::FaultException.new(ERR_METHOD_MISSING, "Method #{methodname} missing or wrong number of parameters!")
343
+ else
344
+ @default_handler.call(methodname, *args)
345
+ end
346
+ end
347
+
348
+
349
+ #
350
+ # returns true, if the arity of "obj" matches
351
+ #
352
+ def check_arity(obj, n_args)
353
+ ary = obj.arity
354
+
355
+ if ary >= 0
356
+ n_args == ary
357
+ else
358
+ n_args >= (ary+1).abs
359
+ end
360
+ end
361
+
362
+
363
+
364
+ def call_method(methodname, *args)
365
+ begin
366
+ [true, dispatch(methodname, *args)]
367
+ rescue XMLRPC::FaultException => e
368
+ [false, e]
369
+ rescue Exception => e
370
+ [false, XMLRPC::FaultException.new(ERR_UNCAUGHT_EXCEPTION, "Uncaught exception #{e.message} in method #{methodname}")]
371
+ end
372
+ end
373
+
374
+ #
375
+ #
376
+ #
377
+ def handle(methodname, *args)
378
+ create().methodResponse(*call_method(methodname, *args))
379
+ end
380
+
381
+
382
+ end
383
+
384
+
385
+ =begin
386
+ = XMLRPC::CGIServer
387
+ == Synopsis
388
+ require "xmlrpc/server"
389
+
390
+ s = XMLRPC::CGIServer.new
391
+
392
+ s.add_handler("michael.add") do |a,b|
393
+ a + b
394
+ end
395
+
396
+ s.add_handler("michael.div") do |a,b|
397
+ if b == 0
398
+ raise XMLRPC::FaultException.new(1, "division by zero")
399
+ else
400
+ a / b
401
+ end
402
+ end
403
+
404
+ s.set_default_handler do |name, *args|
405
+ raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
406
+ " or wrong number of parameters!")
407
+ end
408
+
409
+ s.serve
410
+
411
+ == Description
412
+ Implements a CGI-based XML-RPC server.
413
+
414
+ == Superclass
415
+ ((<XMLRPC::BasicServer>))
416
+
417
+ == Class Methods
418
+ --- XMLRPC::CGIServer.new( *a )
419
+ Creates a new (({XMLRPC::CGIServer})) instance. All parameters given
420
+ are by-passed to ((<XMLRPC::BasicServer.new>)). You can only create
421
+ ((*one*)) (({XMLRPC::CGIServer})) instance, because more than one makes
422
+ no sense.
423
+
424
+ == Instance Methods
425
+ --- XMLRPC::CGIServer#serve
426
+ Call this after you have added all you handlers to the server.
427
+ This method processes a XML-RPC methodCall and sends the answer
428
+ back to the client.
429
+ Make sure that you don't write to standard-output in a handler, or in
430
+ any other part of your program, this would case a CGI-based server to fail!
431
+ =end
432
+
433
+ class CGIServer < BasicServer
434
+ @@obj = nil
435
+
436
+ def CGIServer.new(*a)
437
+ @@obj = super(*a) if @@obj.nil?
438
+ @@obj
439
+ end
440
+
441
+ def initialize(*a)
442
+ super(*a)
443
+ end
444
+
445
+ def serve
446
+ catch(:exit_serve) {
447
+ length = ENV['CONTENT_LENGTH'].to_i
448
+
449
+ http_error(405, "Method Not Allowed") unless ENV['REQUEST_METHOD'] == "POST"
450
+ http_error(400, "Bad Request") unless parse_content_type(ENV['CONTENT_TYPE']).first == "text/xml"
451
+ http_error(411, "Length Required") unless length > 0
452
+
453
+ # TODO: do we need a call to binmode?
454
+ $stdin.binmode if $stdin.respond_to? :binmode
455
+ data = $stdin.read(length)
456
+
457
+ http_error(400, "Bad Request") if data.nil? or data.size != length
458
+
459
+ http_write(process(data), "Content-type" => "text/xml; charset=utf-8")
460
+ }
461
+ end
462
+
463
+
464
+ private
465
+
466
+ def http_error(status, message)
467
+ err = "#{status} #{message}"
468
+ msg = <<-"MSGEND"
469
+ <html>
470
+ <head>
471
+ <title>#{err}</title>
472
+ </head>
473
+ <body>
474
+ <h1>#{err}</h1>
475
+ <p>Unexpected error occured while processing XML-RPC request!</p>
476
+ </body>
477
+ </html>
478
+ MSGEND
479
+
480
+ http_write(msg, "Status" => err, "Content-type" => "text/html")
481
+ throw :exit_serve # exit from the #serve method
482
+ end
483
+
484
+ def http_write(body, header)
485
+ h = {}
486
+ header.each {|key, value| h[key.to_s.capitalize] = value}
487
+ h['Status'] ||= "200 OK"
488
+ h['Content-length'] ||= body.size.to_s
489
+
490
+ str = ""
491
+ h.each {|key, value| str << "#{key}: #{value}\r\n"}
492
+ str << "\r\n#{body}"
493
+
494
+ print str
495
+ end
496
+
497
+ end
498
+
499
+ =begin
500
+ = XMLRPC::ModRubyServer
501
+ == Description
502
+ Implements a XML-RPC server, which works with Apache mod_ruby.
503
+
504
+ Use it in the same way as CGIServer!
505
+
506
+ == Superclass
507
+ ((<XMLRPC::BasicServer>))
508
+ =end
509
+
510
+ class ModRubyServer < BasicServer
511
+
512
+ def initialize(*a)
513
+ @ap = Apache::request
514
+ super(*a)
515
+ end
516
+
517
+ def serve
518
+ catch(:exit_serve) {
519
+ header = {}
520
+ @ap.headers_in.each {|key, value| header[key.capitalize] = value}
521
+
522
+ length = header['Content-length'].to_i
523
+
524
+ http_error(405, "Method Not Allowed") unless @ap.request_method == "POST"
525
+ http_error(400, "Bad Request") unless parse_content_type(header['Content-type']).first == "text/xml"
526
+ http_error(411, "Length Required") unless length > 0
527
+
528
+ # TODO: do we need a call to binmode?
529
+ @ap.binmode
530
+ data = @ap.read(length)
531
+
532
+ http_error(400, "Bad Request") if data.nil? or data.size != length
533
+
534
+ http_write(process(data), 200, "Content-type" => "text/xml; charset=utf-8")
535
+ }
536
+ end
537
+
538
+
539
+ private
540
+
541
+ def http_error(status, message)
542
+ err = "#{status} #{message}"
543
+ msg = <<-"MSGEND"
544
+ <html>
545
+ <head>
546
+ <title>#{err}</title>
547
+ </head>
548
+ <body>
549
+ <h1>#{err}</h1>
550
+ <p>Unexpected error occured while processing XML-RPC request!</p>
551
+ </body>
552
+ </html>
553
+ MSGEND
554
+
555
+ http_write(msg, status, "Status" => err, "Content-type" => "text/html")
556
+ throw :exit_serve # exit from the #serve method
557
+ end
558
+
559
+ def http_write(body, status, header)
560
+ h = {}
561
+ header.each {|key, value| h[key.to_s.capitalize] = value}
562
+ h['Status'] ||= "200 OK"
563
+ h['Content-length'] ||= body.size.to_s
564
+
565
+ h.each {|key, value| @ap.headers_out[key] = value }
566
+ @ap.content_type = h["Content-type"]
567
+ @ap.status = status.to_i
568
+ @ap.send_http_header
569
+
570
+ @ap.print body
571
+ end
572
+
573
+ end
574
+
575
+ =begin
576
+ = XMLRPC::Server
577
+ == Synopsis
578
+ require "xmlrpc/server"
579
+
580
+ s = XMLRPC::Server.new(8080)
581
+
582
+ s.add_handler("michael.add") do |a,b|
583
+ a + b
584
+ end
585
+
586
+ s.add_handler("michael.div") do |a,b|
587
+ if b == 0
588
+ raise XMLRPC::FaultException.new(1, "division by zero")
589
+ else
590
+ a / b
591
+ end
592
+ end
593
+
594
+ s.set_default_handler do |name, *args|
595
+ raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
596
+ " or wrong number of parameters!")
597
+ end
598
+
599
+ s.serve
600
+
601
+ == Description
602
+ Implements a standalone XML-RPC server. The method (({serve}))) is left if a SIGHUP is sent to the
603
+ program.
604
+
605
+ == Superclass
606
+ ((<XMLRPC::WEBrickServlet>))
607
+
608
+ == Class Methods
609
+ --- XMLRPC::Server.new( port=8080, host="127.0.0.1", maxConnections=4, stdlog=$stdout, audit=true, debug=true, *a )
610
+ Creates a new (({XMLRPC::Server})) instance, which is a XML-RPC server listening on
611
+ port ((|port|)) and accepts requests for the host ((|host|)), which is by default only the localhost.
612
+ The server is not started, to start it you have to call ((<serve|XMLRPC::Server#serve>)).
613
+
614
+ Parameters ((|audit|)) and ((|debug|)) are obsolete!
615
+
616
+ All additionally given parameters in ((|*a|)) are by-passed to ((<XMLRPC::BasicServer.new>)).
617
+
618
+ == Instance Methods
619
+ --- XMLRPC::Server#serve
620
+ Call this after you have added all you handlers to the server.
621
+ This method starts the server to listen for XML-RPC requests and answer them.
622
+
623
+ --- XMLRPC::Server#shutdown
624
+ Stops and shuts the server down.
625
+
626
+ =end
627
+
628
+ class WEBrickServlet < BasicServer; end # forward declaration
629
+
630
+ class Server < WEBrickServlet
631
+
632
+ def initialize(port=8080, host="127.0.0.1", maxConnections=4, stdlog=$stdout, audit=true, debug=true, *a)
633
+ super(*a)
634
+ require 'webrick'
635
+ @server = WEBrick::HTTPServer.new(:Port => port, :BindAddress => host, :MaxClients => maxConnections,
636
+ :Logger => WEBrick::Log.new(stdlog))
637
+ @server.mount("/", self)
638
+ end
639
+
640
+ def serve
641
+ if RUBY_PLATFORM =~ /mingw|mswin32/
642
+ signals = [1]
643
+ else
644
+ signals = %w[INT TERM HUP]
645
+ end
646
+ signals.each { |signal| trap(signal) { @server.shutdown } }
647
+
648
+ @server.start
649
+ end
650
+
651
+ def shutdown
652
+ @server.shutdown
653
+ end
654
+
655
+ end
656
+
657
+ =begin
658
+ = XMLRPC::WEBrickServlet
659
+ == Synopsis
660
+
661
+ require "webrick"
662
+ require "xmlrpc/server"
663
+
664
+ s = XMLRPC::WEBrickServlet.new
665
+ s.add_handler("michael.add") do |a,b|
666
+ a + b
667
+ end
668
+
669
+ s.add_handler("michael.div") do |a,b|
670
+ if b == 0
671
+ raise XMLRPC::FaultException.new(1, "division by zero")
672
+ else
673
+ a / b
674
+ end
675
+ end
676
+
677
+ s.set_default_handler do |name, *args|
678
+ raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
679
+ " or wrong number of parameters!")
680
+ end
681
+
682
+ httpserver = WEBrick::HTTPServer.new(:Port => 8080)
683
+ httpserver.mount("/RPC2", s)
684
+ trap("HUP") { httpserver.shutdown } # use 1 instead of "HUP" on Windows
685
+ httpserver.start
686
+
687
+ == Instance Methods
688
+
689
+ --- XMLRPC::WEBrickServlet#set_valid_ip( *ip_addr )
690
+ Specifies the valid IP addresses that are allowed to connect to the server.
691
+ Each IP is either a (({String})) or a (({Regexp})).
692
+
693
+ --- XMLRPC::WEBrickServlet#get_valid_ip
694
+ Return the via method ((<set_valid_ip|XMLRPC::Server#set_valid_ip>)) specified
695
+ valid IP addresses.
696
+
697
+ == Description
698
+ Implements a servlet for use with WEBrick, a pure Ruby (HTTP-) server framework.
699
+
700
+ == Superclass
701
+ ((<XMLRPC::BasicServer>))
702
+
703
+ =end
704
+
705
+ class WEBrickServlet < BasicServer
706
+ def initialize(*a)
707
+ super
708
+ require "webrick/httpstatus"
709
+ @valid_ip = nil
710
+ end
711
+
712
+ # deprecated from WEBrick/1.2.2.
713
+ # but does not break anything.
714
+ def require_path_info?
715
+ false
716
+ end
717
+
718
+ def get_instance(config, *options)
719
+ # TODO: set config & options
720
+ self
721
+ end
722
+
723
+ def set_valid_ip(*ip_addr)
724
+ if ip_addr.size == 1 and ip_addr[0].nil?
725
+ @valid_ip = nil
726
+ else
727
+ @valid_ip = ip_addr
728
+ end
729
+ end
730
+
731
+ def get_valid_ip
732
+ @valid_ip
733
+ end
734
+
735
+ def service(request, response)
736
+
737
+ if @valid_ip
738
+ raise WEBrick::HTTPStatus::Forbidden unless @valid_ip.any? { |ip| request.peeraddr[3] =~ ip }
739
+ end
740
+
741
+ if request.request_method != "POST"
742
+ raise WEBrick::HTTPStatus::MethodNotAllowed,
743
+ "unsupported method `#{request.request_method}'."
744
+ end
745
+
746
+ if parse_content_type(request['Content-type']).first != "text/xml"
747
+ raise WEBrick::HTTPStatus::BadRequest
748
+ end
749
+
750
+ length = (request['Content-length'] || 0).to_i
751
+
752
+ raise WEBrick::HTTPStatus::LengthRequired unless length > 0
753
+
754
+ data = request.body
755
+
756
+ if data.nil? or data.size != length
757
+ raise WEBrick::HTTPStatus::BadRequest
758
+ end
759
+
760
+ resp = process(data)
761
+ if resp.nil? or resp.size <= 0
762
+ raise WEBrick::HTTPStatus::InternalServerError
763
+ end
764
+
765
+ response.status = 200
766
+ response['Content-Length'] = resp.size
767
+ response['Content-Type'] = "text/xml; charset=utf-8"
768
+ response.body = resp
769
+ end
770
+ end
771
+
772
+
773
+ end # module XMLRPC
774
+
775
+
776
+ =begin
777
+ = History
778
+ $Id: server.rb 14071 2007-12-01 16:14:17Z jeg2 $
779
+ =end
780
+