ruby_on_ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (493) hide show
  1. data/.gitignore +18 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE +22 -0
  5. data/README.md +66 -0
  6. data/Rakefile +1 -0
  7. data/lib/ruby_on_ruby.rb +5 -0
  8. data/lib/ruby_on_ruby/console.rb +7 -0
  9. data/lib/ruby_on_ruby/context.rb +33 -0
  10. data/lib/ruby_on_ruby/file_loader.rb +31 -0
  11. data/lib/ruby_on_ruby/ruby_stream.rb +27 -0
  12. data/lib/ruby_on_ruby/version.rb +3 -0
  13. data/lib/rubyonruby.rb +1 -0
  14. data/ruby_in_ruby.gemspec +19 -0
  15. data/vendor/javascripts/emscripted-ruby/lib/.document +106 -0
  16. data/vendor/javascripts/emscripted-ruby/lib/English.rb +155 -0
  17. data/vendor/javascripts/emscripted-ruby/lib/Env.rb +18 -0
  18. data/vendor/javascripts/emscripted-ruby/lib/README +96 -0
  19. data/vendor/javascripts/emscripted-ruby/lib/abbrev.rb +103 -0
  20. data/vendor/javascripts/emscripted-ruby/lib/base64.rb +133 -0
  21. data/vendor/javascripts/emscripted-ruby/lib/benchmark.rb +572 -0
  22. data/vendor/javascripts/emscripted-ruby/lib/cgi-lib.rb +272 -0
  23. data/vendor/javascripts/emscripted-ruby/lib/cgi.rb +2308 -0
  24. data/vendor/javascripts/emscripted-ruby/lib/cgi/.document +2 -0
  25. data/vendor/javascripts/emscripted-ruby/lib/cgi/session.rb +498 -0
  26. data/vendor/javascripts/emscripted-ruby/lib/cgi/session/pstore.rb +111 -0
  27. data/vendor/javascripts/emscripted-ruby/lib/complex.rb +663 -0
  28. data/vendor/javascripts/emscripted-ruby/lib/csv.rb +992 -0
  29. data/vendor/javascripts/emscripted-ruby/lib/date.rb +1767 -0
  30. data/vendor/javascripts/emscripted-ruby/lib/date/format.rb +1190 -0
  31. data/vendor/javascripts/emscripted-ruby/lib/date2.rb +5 -0
  32. data/vendor/javascripts/emscripted-ruby/lib/debug.rb +947 -0
  33. data/vendor/javascripts/emscripted-ruby/lib/delegate.rb +337 -0
  34. data/vendor/javascripts/emscripted-ruby/lib/drb.rb +2 -0
  35. data/vendor/javascripts/emscripted-ruby/lib/drb/acl.rb +146 -0
  36. data/vendor/javascripts/emscripted-ruby/lib/drb/drb.rb +1782 -0
  37. data/vendor/javascripts/emscripted-ruby/lib/drb/eq.rb +16 -0
  38. data/vendor/javascripts/emscripted-ruby/lib/drb/extserv.rb +64 -0
  39. data/vendor/javascripts/emscripted-ruby/lib/drb/extservm.rb +89 -0
  40. data/vendor/javascripts/emscripted-ruby/lib/drb/gw.rb +122 -0
  41. data/vendor/javascripts/emscripted-ruby/lib/drb/invokemethod.rb +36 -0
  42. data/vendor/javascripts/emscripted-ruby/lib/drb/observer.rb +22 -0
  43. data/vendor/javascripts/emscripted-ruby/lib/drb/ssl.rb +190 -0
  44. data/vendor/javascripts/emscripted-ruby/lib/drb/timeridconv.rb +91 -0
  45. data/vendor/javascripts/emscripted-ruby/lib/drb/unix.rb +108 -0
  46. data/vendor/javascripts/emscripted-ruby/lib/e2mmap.rb +195 -0
  47. data/vendor/javascripts/emscripted-ruby/lib/erb.rb +880 -0
  48. data/vendor/javascripts/emscripted-ruby/lib/eregex.rb +37 -0
  49. data/vendor/javascripts/emscripted-ruby/lib/fileutils.rb +1591 -0
  50. data/vendor/javascripts/emscripted-ruby/lib/finalize.rb +193 -0
  51. data/vendor/javascripts/emscripted-ruby/lib/find.rb +79 -0
  52. data/vendor/javascripts/emscripted-ruby/lib/forwardable.rb +218 -0
  53. data/vendor/javascripts/emscripted-ruby/lib/ftools.rb +261 -0
  54. data/vendor/javascripts/emscripted-ruby/lib/generator.rb +418 -0
  55. data/vendor/javascripts/emscripted-ruby/lib/getoptlong.rb +621 -0
  56. data/vendor/javascripts/emscripted-ruby/lib/getopts.rb +127 -0
  57. data/vendor/javascripts/emscripted-ruby/lib/gserver.rb +253 -0
  58. data/vendor/javascripts/emscripted-ruby/lib/importenv.rb +33 -0
  59. data/vendor/javascripts/emscripted-ruby/lib/ipaddr.rb +814 -0
  60. data/vendor/javascripts/emscripted-ruby/lib/irb.rb +346 -0
  61. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/chws.rb +33 -0
  62. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/fork.rb +39 -0
  63. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/help.rb +34 -0
  64. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/load.rb +67 -0
  65. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/nop.rb +39 -0
  66. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/pushws.rb +39 -0
  67. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/subirb.rb +43 -0
  68. data/vendor/javascripts/emscripted-ruby/lib/irb/completion.rb +205 -0
  69. data/vendor/javascripts/emscripted-ruby/lib/irb/context.rb +255 -0
  70. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/change-ws.rb +62 -0
  71. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/history.rb +110 -0
  72. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/loader.rb +120 -0
  73. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/math-mode.rb +37 -0
  74. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/multi-irb.rb +241 -0
  75. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/save-history.rb +85 -0
  76. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/tracer.rb +61 -0
  77. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/use-loader.rb +65 -0
  78. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/workspaces.rb +56 -0
  79. data/vendor/javascripts/emscripted-ruby/lib/irb/extend-command.rb +264 -0
  80. data/vendor/javascripts/emscripted-ruby/lib/irb/frame.rb +67 -0
  81. data/vendor/javascripts/emscripted-ruby/lib/irb/help.rb +33 -0
  82. data/vendor/javascripts/emscripted-ruby/lib/irb/init.rb +259 -0
  83. data/vendor/javascripts/emscripted-ruby/lib/irb/input-method.rb +120 -0
  84. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/error.rb +30 -0
  85. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/help-message +35 -0
  86. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/error.rb +27 -0
  87. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/help-message +36 -0
  88. data/vendor/javascripts/emscripted-ruby/lib/irb/locale.rb +184 -0
  89. data/vendor/javascripts/emscripted-ruby/lib/irb/notifier.rb +145 -0
  90. data/vendor/javascripts/emscripted-ruby/lib/irb/output-method.rb +85 -0
  91. data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-lex.rb +1149 -0
  92. data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-token.rb +273 -0
  93. data/vendor/javascripts/emscripted-ruby/lib/irb/slex.rb +285 -0
  94. data/vendor/javascripts/emscripted-ruby/lib/irb/version.rb +16 -0
  95. data/vendor/javascripts/emscripted-ruby/lib/irb/workspace.rb +107 -0
  96. data/vendor/javascripts/emscripted-ruby/lib/irb/ws-for-case-2.rb +15 -0
  97. data/vendor/javascripts/emscripted-ruby/lib/irb/xmp.rb +86 -0
  98. data/vendor/javascripts/emscripted-ruby/lib/jcode.rb +220 -0
  99. data/vendor/javascripts/emscripted-ruby/lib/logger.rb +703 -0
  100. data/vendor/javascripts/emscripted-ruby/lib/mailread.rb +62 -0
  101. data/vendor/javascripts/emscripted-ruby/lib/mathn.rb +308 -0
  102. data/vendor/javascripts/emscripted-ruby/lib/matrix.rb +1278 -0
  103. data/vendor/javascripts/emscripted-ruby/lib/mkmf.rb +1811 -0
  104. data/vendor/javascripts/emscripted-ruby/lib/monitor.rb +352 -0
  105. data/vendor/javascripts/emscripted-ruby/lib/mutex_m.rb +122 -0
  106. data/vendor/javascripts/emscripted-ruby/lib/net/ftp.rb +927 -0
  107. data/vendor/javascripts/emscripted-ruby/lib/net/http.rb +2277 -0
  108. data/vendor/javascripts/emscripted-ruby/lib/net/https.rb +173 -0
  109. data/vendor/javascripts/emscripted-ruby/lib/net/imap.rb +3371 -0
  110. data/vendor/javascripts/emscripted-ruby/lib/net/pop.rb +999 -0
  111. data/vendor/javascripts/emscripted-ruby/lib/net/protocol.rb +392 -0
  112. data/vendor/javascripts/emscripted-ruby/lib/net/smtp.rb +1014 -0
  113. data/vendor/javascripts/emscripted-ruby/lib/net/telnet.rb +756 -0
  114. data/vendor/javascripts/emscripted-ruby/lib/observer.rb +192 -0
  115. data/vendor/javascripts/emscripted-ruby/lib/open-uri.rb +678 -0
  116. data/vendor/javascripts/emscripted-ruby/lib/open3.rb +101 -0
  117. data/vendor/javascripts/emscripted-ruby/lib/optparse.rb +1790 -0
  118. data/vendor/javascripts/emscripted-ruby/lib/optparse/date.rb +17 -0
  119. data/vendor/javascripts/emscripted-ruby/lib/optparse/shellwords.rb +6 -0
  120. data/vendor/javascripts/emscripted-ruby/lib/optparse/time.rb +10 -0
  121. data/vendor/javascripts/emscripted-ruby/lib/optparse/uri.rb +6 -0
  122. data/vendor/javascripts/emscripted-ruby/lib/optparse/version.rb +70 -0
  123. data/vendor/javascripts/emscripted-ruby/lib/ostruct.rb +146 -0
  124. data/vendor/javascripts/emscripted-ruby/lib/parsearg.rb +87 -0
  125. data/vendor/javascripts/emscripted-ruby/lib/parsedate.rb +53 -0
  126. data/vendor/javascripts/emscripted-ruby/lib/pathname.rb +1062 -0
  127. data/vendor/javascripts/emscripted-ruby/lib/ping.rb +64 -0
  128. data/vendor/javascripts/emscripted-ruby/lib/pp.rb +654 -0
  129. data/vendor/javascripts/emscripted-ruby/lib/prettyprint.rb +896 -0
  130. data/vendor/javascripts/emscripted-ruby/lib/profile.rb +6 -0
  131. data/vendor/javascripts/emscripted-ruby/lib/profiler.rb +59 -0
  132. data/vendor/javascripts/emscripted-ruby/lib/pstore.rb +395 -0
  133. data/vendor/javascripts/emscripted-ruby/lib/racc/parser.rb +442 -0
  134. data/vendor/javascripts/emscripted-ruby/lib/rational.rb +564 -0
  135. data/vendor/javascripts/emscripted-ruby/lib/readbytes.rb +41 -0
  136. data/vendor/javascripts/emscripted-ruby/lib/resolv-replace.rb +62 -0
  137. data/vendor/javascripts/emscripted-ruby/lib/resolv.rb +2210 -0
  138. data/vendor/javascripts/emscripted-ruby/lib/rexml/attlistdecl.rb +62 -0
  139. data/vendor/javascripts/emscripted-ruby/lib/rexml/attribute.rb +185 -0
  140. data/vendor/javascripts/emscripted-ruby/lib/rexml/cdata.rb +67 -0
  141. data/vendor/javascripts/emscripted-ruby/lib/rexml/child.rb +96 -0
  142. data/vendor/javascripts/emscripted-ruby/lib/rexml/comment.rb +80 -0
  143. data/vendor/javascripts/emscripted-ruby/lib/rexml/doctype.rb +271 -0
  144. data/vendor/javascripts/emscripted-ruby/lib/rexml/document.rb +208 -0
  145. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/attlistdecl.rb +10 -0
  146. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/dtd.rb +51 -0
  147. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/elementdecl.rb +17 -0
  148. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/entitydecl.rb +56 -0
  149. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/notationdecl.rb +39 -0
  150. data/vendor/javascripts/emscripted-ruby/lib/rexml/element.rb +1227 -0
  151. data/vendor/javascripts/emscripted-ruby/lib/rexml/encoding.rb +71 -0
  152. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/CP-1252.rb +103 -0
  153. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/EUC-JP.rb +35 -0
  154. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ICONV.rb +22 -0
  155. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-1.rb +7 -0
  156. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-15.rb +72 -0
  157. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT-JIS.rb +37 -0
  158. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT_JIS.rb +1 -0
  159. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UNILE.rb +34 -0
  160. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/US-ASCII.rb +30 -0
  161. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-16.rb +35 -0
  162. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-8.rb +18 -0
  163. data/vendor/javascripts/emscripted-ruby/lib/rexml/entity.rb +165 -0
  164. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/default.rb +109 -0
  165. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/pretty.rb +137 -0
  166. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/transitive.rb +56 -0
  167. data/vendor/javascripts/emscripted-ruby/lib/rexml/functions.rb +382 -0
  168. data/vendor/javascripts/emscripted-ruby/lib/rexml/instruction.rb +70 -0
  169. data/vendor/javascripts/emscripted-ruby/lib/rexml/light/node.rb +196 -0
  170. data/vendor/javascripts/emscripted-ruby/lib/rexml/namespace.rb +47 -0
  171. data/vendor/javascripts/emscripted-ruby/lib/rexml/node.rb +75 -0
  172. data/vendor/javascripts/emscripted-ruby/lib/rexml/output.rb +24 -0
  173. data/vendor/javascripts/emscripted-ruby/lib/rexml/parent.rb +166 -0
  174. data/vendor/javascripts/emscripted-ruby/lib/rexml/parseexception.rb +51 -0
  175. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/baseparser.rb +503 -0
  176. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/lightparser.rb +60 -0
  177. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/pullparser.rb +196 -0
  178. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/sax2parser.rb +238 -0
  179. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/streamparser.rb +46 -0
  180. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/treeparser.rb +97 -0
  181. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/ultralightparser.rb +56 -0
  182. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/xpathparser.rb +698 -0
  183. data/vendor/javascripts/emscripted-ruby/lib/rexml/quickpath.rb +266 -0
  184. data/vendor/javascripts/emscripted-ruby/lib/rexml/rexml.rb +32 -0
  185. data/vendor/javascripts/emscripted-ruby/lib/rexml/sax2listener.rb +97 -0
  186. data/vendor/javascripts/emscripted-ruby/lib/rexml/source.rb +251 -0
  187. data/vendor/javascripts/emscripted-ruby/lib/rexml/streamlistener.rb +92 -0
  188. data/vendor/javascripts/emscripted-ruby/lib/rexml/syncenumerator.rb +33 -0
  189. data/vendor/javascripts/emscripted-ruby/lib/rexml/text.rb +344 -0
  190. data/vendor/javascripts/emscripted-ruby/lib/rexml/undefinednamespaceexception.rb +8 -0
  191. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/relaxng.rb +559 -0
  192. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validation.rb +155 -0
  193. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validationexception.rb +9 -0
  194. data/vendor/javascripts/emscripted-ruby/lib/rexml/xmldecl.rb +119 -0
  195. data/vendor/javascripts/emscripted-ruby/lib/rexml/xmltokens.rb +18 -0
  196. data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath.rb +66 -0
  197. data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath_parser.rb +792 -0
  198. data/vendor/javascripts/emscripted-ruby/lib/rinda/rinda.rb +283 -0
  199. data/vendor/javascripts/emscripted-ruby/lib/rinda/ring.rb +271 -0
  200. data/vendor/javascripts/emscripted-ruby/lib/rinda/tuplespace.rb +642 -0
  201. data/vendor/javascripts/emscripted-ruby/lib/rss.rb +19 -0
  202. data/vendor/javascripts/emscripted-ruby/lib/rss/0.9.rb +428 -0
  203. data/vendor/javascripts/emscripted-ruby/lib/rss/1.0.rb +452 -0
  204. data/vendor/javascripts/emscripted-ruby/lib/rss/2.0.rb +111 -0
  205. data/vendor/javascripts/emscripted-ruby/lib/rss/atom.rb +749 -0
  206. data/vendor/javascripts/emscripted-ruby/lib/rss/content.rb +31 -0
  207. data/vendor/javascripts/emscripted-ruby/lib/rss/content/1.0.rb +10 -0
  208. data/vendor/javascripts/emscripted-ruby/lib/rss/content/2.0.rb +12 -0
  209. data/vendor/javascripts/emscripted-ruby/lib/rss/converter.rb +162 -0
  210. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore.rb +161 -0
  211. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/1.0.rb +13 -0
  212. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/2.0.rb +13 -0
  213. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/atom.rb +17 -0
  214. data/vendor/javascripts/emscripted-ruby/lib/rss/image.rb +193 -0
  215. data/vendor/javascripts/emscripted-ruby/lib/rss/itunes.rb +410 -0
  216. data/vendor/javascripts/emscripted-ruby/lib/rss/maker.rb +44 -0
  217. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/0.9.rb +467 -0
  218. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/1.0.rb +434 -0
  219. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/2.0.rb +223 -0
  220. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/atom.rb +172 -0
  221. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/base.rb +868 -0
  222. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/content.rb +21 -0
  223. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/dublincore.rb +124 -0
  224. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/entry.rb +163 -0
  225. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/feed.rb +429 -0
  226. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/image.rb +111 -0
  227. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/itunes.rb +242 -0
  228. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/slash.rb +33 -0
  229. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/syndication.rb +18 -0
  230. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/taxonomy.rb +118 -0
  231. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/trackback.rb +61 -0
  232. data/vendor/javascripts/emscripted-ruby/lib/rss/parser.rb +541 -0
  233. data/vendor/javascripts/emscripted-ruby/lib/rss/rexmlparser.rb +54 -0
  234. data/vendor/javascripts/emscripted-ruby/lib/rss/rss.rb +1312 -0
  235. data/vendor/javascripts/emscripted-ruby/lib/rss/slash.rb +49 -0
  236. data/vendor/javascripts/emscripted-ruby/lib/rss/syndication.rb +67 -0
  237. data/vendor/javascripts/emscripted-ruby/lib/rss/taxonomy.rb +145 -0
  238. data/vendor/javascripts/emscripted-ruby/lib/rss/trackback.rb +288 -0
  239. data/vendor/javascripts/emscripted-ruby/lib/rss/utils.rb +111 -0
  240. data/vendor/javascripts/emscripted-ruby/lib/rss/xml-stylesheet.rb +105 -0
  241. data/vendor/javascripts/emscripted-ruby/lib/rss/xml.rb +71 -0
  242. data/vendor/javascripts/emscripted-ruby/lib/rss/xmlparser.rb +93 -0
  243. data/vendor/javascripts/emscripted-ruby/lib/rss/xmlscanner.rb +121 -0
  244. data/vendor/javascripts/emscripted-ruby/lib/rubyunit.rb +6 -0
  245. data/vendor/javascripts/emscripted-ruby/lib/runit/assert.rb +73 -0
  246. data/vendor/javascripts/emscripted-ruby/lib/runit/cui/testrunner.rb +51 -0
  247. data/vendor/javascripts/emscripted-ruby/lib/runit/error.rb +9 -0
  248. data/vendor/javascripts/emscripted-ruby/lib/runit/testcase.rb +45 -0
  249. data/vendor/javascripts/emscripted-ruby/lib/runit/testresult.rb +44 -0
  250. data/vendor/javascripts/emscripted-ruby/lib/runit/testsuite.rb +26 -0
  251. data/vendor/javascripts/emscripted-ruby/lib/runit/topublic.rb +8 -0
  252. data/vendor/javascripts/emscripted-ruby/lib/scanf.rb +702 -0
  253. data/vendor/javascripts/emscripted-ruby/lib/securerandom.rb +137 -0
  254. data/vendor/javascripts/emscripted-ruby/lib/set.rb +1233 -0
  255. data/vendor/javascripts/emscripted-ruby/lib/shell.rb +269 -0
  256. data/vendor/javascripts/emscripted-ruby/lib/shell/builtin-command.rb +154 -0
  257. data/vendor/javascripts/emscripted-ruby/lib/shell/command-processor.rb +592 -0
  258. data/vendor/javascripts/emscripted-ruby/lib/shell/error.rb +26 -0
  259. data/vendor/javascripts/emscripted-ruby/lib/shell/filter.rb +110 -0
  260. data/vendor/javascripts/emscripted-ruby/lib/shell/process-controller.rb +260 -0
  261. data/vendor/javascripts/emscripted-ruby/lib/shell/system-command.rb +168 -0
  262. data/vendor/javascripts/emscripted-ruby/lib/shell/version.rb +16 -0
  263. data/vendor/javascripts/emscripted-ruby/lib/shellwords.rb +172 -0
  264. data/vendor/javascripts/emscripted-ruby/lib/singleton.rb +360 -0
  265. data/vendor/javascripts/emscripted-ruby/lib/soap/attachment.rb +107 -0
  266. data/vendor/javascripts/emscripted-ruby/lib/soap/baseData.rb +942 -0
  267. data/vendor/javascripts/emscripted-ruby/lib/soap/element.rb +258 -0
  268. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/aspDotNetHandler.rb +213 -0
  269. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/handler.rb +100 -0
  270. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/literalHandler.rb +226 -0
  271. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/soapHandler.rb +582 -0
  272. data/vendor/javascripts/emscripted-ruby/lib/soap/generator.rb +268 -0
  273. data/vendor/javascripts/emscripted-ruby/lib/soap/header/handler.rb +57 -0
  274. data/vendor/javascripts/emscripted-ruby/lib/soap/header/handlerset.rb +70 -0
  275. data/vendor/javascripts/emscripted-ruby/lib/soap/header/simplehandler.rb +44 -0
  276. data/vendor/javascripts/emscripted-ruby/lib/soap/httpconfigloader.rb +119 -0
  277. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping.rb +10 -0
  278. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/factory.rb +355 -0
  279. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/mapping.rb +381 -0
  280. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/registry.rb +541 -0
  281. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/rubytypeFactory.rb +475 -0
  282. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/typeMap.rb +50 -0
  283. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlencodedregistry.rb +280 -0
  284. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlliteralregistry.rb +418 -0
  285. data/vendor/javascripts/emscripted-ruby/lib/soap/marshal.rb +59 -0
  286. data/vendor/javascripts/emscripted-ruby/lib/soap/mimemessage.rb +240 -0
  287. data/vendor/javascripts/emscripted-ruby/lib/soap/netHttpClient.rb +190 -0
  288. data/vendor/javascripts/emscripted-ruby/lib/soap/parser.rb +251 -0
  289. data/vendor/javascripts/emscripted-ruby/lib/soap/processor.rb +66 -0
  290. data/vendor/javascripts/emscripted-ruby/lib/soap/property.rb +333 -0
  291. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/cgistub.rb +206 -0
  292. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/driver.rb +254 -0
  293. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/element.rb +325 -0
  294. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/httpserver.rb +129 -0
  295. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/proxy.rb +497 -0
  296. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/router.rb +594 -0
  297. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/rpc.rb +25 -0
  298. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/soaplet.rb +162 -0
  299. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/standaloneServer.rb +43 -0
  300. data/vendor/javascripts/emscripted-ruby/lib/soap/soap.rb +140 -0
  301. data/vendor/javascripts/emscripted-ruby/lib/soap/streamHandler.rb +229 -0
  302. data/vendor/javascripts/emscripted-ruby/lib/soap/wsdlDriver.rb +575 -0
  303. data/vendor/javascripts/emscripted-ruby/lib/sync.rb +311 -0
  304. data/vendor/javascripts/emscripted-ruby/lib/tempfile.rb +209 -0
  305. data/vendor/javascripts/emscripted-ruby/lib/test/unit.rb +280 -0
  306. data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertionfailederror.rb +14 -0
  307. data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertions.rb +622 -0
  308. data/vendor/javascripts/emscripted-ruby/lib/test/unit/autorunner.rb +220 -0
  309. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector.rb +43 -0
  310. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/dir.rb +107 -0
  311. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/objectspace.rb +34 -0
  312. data/vendor/javascripts/emscripted-ruby/lib/test/unit/error.rb +56 -0
  313. data/vendor/javascripts/emscripted-ruby/lib/test/unit/failure.rb +51 -0
  314. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testcase.rb +160 -0
  315. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testresult.rb +80 -0
  316. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testsuite.rb +76 -0
  317. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/console/testrunner.rb +127 -0
  318. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/fox/testrunner.rb +268 -0
  319. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk/testrunner.rb +416 -0
  320. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk2/testrunner.rb +465 -0
  321. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnermediator.rb +68 -0
  322. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnerutilities.rb +46 -0
  323. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/tk/testrunner.rb +260 -0
  324. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/backtracefilter.rb +40 -0
  325. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/observable.rb +90 -0
  326. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/procwrapper.rb +48 -0
  327. data/vendor/javascripts/emscripted-ruby/lib/thread.rb +479 -0
  328. data/vendor/javascripts/emscripted-ruby/lib/thwait.rb +169 -0
  329. data/vendor/javascripts/emscripted-ruby/lib/time.rb +797 -0
  330. data/vendor/javascripts/emscripted-ruby/lib/timeout.rb +122 -0
  331. data/vendor/javascripts/emscripted-ruby/lib/tmpdir.rb +130 -0
  332. data/vendor/javascripts/emscripted-ruby/lib/tracer.rb +167 -0
  333. data/vendor/javascripts/emscripted-ruby/lib/tsort.rb +290 -0
  334. data/vendor/javascripts/emscripted-ruby/lib/un.rb +235 -0
  335. data/vendor/javascripts/emscripted-ruby/lib/uri.rb +29 -0
  336. data/vendor/javascripts/emscripted-ruby/lib/uri/common.rb +611 -0
  337. data/vendor/javascripts/emscripted-ruby/lib/uri/ftp.rb +198 -0
  338. data/vendor/javascripts/emscripted-ruby/lib/uri/generic.rb +1122 -0
  339. data/vendor/javascripts/emscripted-ruby/lib/uri/http.rb +100 -0
  340. data/vendor/javascripts/emscripted-ruby/lib/uri/https.rb +20 -0
  341. data/vendor/javascripts/emscripted-ruby/lib/uri/ldap.rb +190 -0
  342. data/vendor/javascripts/emscripted-ruby/lib/uri/ldaps.rb +12 -0
  343. data/vendor/javascripts/emscripted-ruby/lib/uri/mailto.rb +266 -0
  344. data/vendor/javascripts/emscripted-ruby/lib/weakref.rb +100 -0
  345. data/vendor/javascripts/emscripted-ruby/lib/webrick.rb +29 -0
  346. data/vendor/javascripts/emscripted-ruby/lib/webrick/accesslog.rb +67 -0
  347. data/vendor/javascripts/emscripted-ruby/lib/webrick/cgi.rb +257 -0
  348. data/vendor/javascripts/emscripted-ruby/lib/webrick/compat.rb +15 -0
  349. data/vendor/javascripts/emscripted-ruby/lib/webrick/config.rb +97 -0
  350. data/vendor/javascripts/emscripted-ruby/lib/webrick/cookie.rb +110 -0
  351. data/vendor/javascripts/emscripted-ruby/lib/webrick/htmlutils.rb +25 -0
  352. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth.rb +45 -0
  353. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/authenticator.rb +79 -0
  354. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/basicauth.rb +65 -0
  355. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/digestauth.rb +343 -0
  356. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htdigest.rb +91 -0
  357. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htgroup.rb +61 -0
  358. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htpasswd.rb +83 -0
  359. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/userdb.rb +29 -0
  360. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpproxy.rb +254 -0
  361. data/vendor/javascripts/emscripted-ruby/lib/webrick/httprequest.rb +365 -0
  362. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpresponse.rb +327 -0
  363. data/vendor/javascripts/emscripted-ruby/lib/webrick/https.rb +63 -0
  364. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpserver.rb +210 -0
  365. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet.rb +22 -0
  366. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/abstract.rb +71 -0
  367. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  368. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgihandler.rb +108 -0
  369. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/erbhandler.rb +54 -0
  370. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/filehandler.rb +435 -0
  371. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/prochandler.rb +33 -0
  372. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpstatus.rb +126 -0
  373. data/vendor/javascripts/emscripted-ruby/lib/webrick/httputils.rb +399 -0
  374. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpversion.rb +49 -0
  375. data/vendor/javascripts/emscripted-ruby/lib/webrick/log.rb +88 -0
  376. data/vendor/javascripts/emscripted-ruby/lib/webrick/server.rb +200 -0
  377. data/vendor/javascripts/emscripted-ruby/lib/webrick/ssl.rb +126 -0
  378. data/vendor/javascripts/emscripted-ruby/lib/webrick/utils.rb +100 -0
  379. data/vendor/javascripts/emscripted-ruby/lib/webrick/version.rb +13 -0
  380. data/vendor/javascripts/emscripted-ruby/lib/wsdl/binding.rb +65 -0
  381. data/vendor/javascripts/emscripted-ruby/lib/wsdl/data.rb +64 -0
  382. data/vendor/javascripts/emscripted-ruby/lib/wsdl/definitions.rb +250 -0
  383. data/vendor/javascripts/emscripted-ruby/lib/wsdl/documentation.rb +32 -0
  384. data/vendor/javascripts/emscripted-ruby/lib/wsdl/import.rb +80 -0
  385. data/vendor/javascripts/emscripted-ruby/lib/wsdl/importer.rb +38 -0
  386. data/vendor/javascripts/emscripted-ruby/lib/wsdl/info.rb +39 -0
  387. data/vendor/javascripts/emscripted-ruby/lib/wsdl/message.rb +54 -0
  388. data/vendor/javascripts/emscripted-ruby/lib/wsdl/operation.rb +130 -0
  389. data/vendor/javascripts/emscripted-ruby/lib/wsdl/operationBinding.rb +108 -0
  390. data/vendor/javascripts/emscripted-ruby/lib/wsdl/param.rb +85 -0
  391. data/vendor/javascripts/emscripted-ruby/lib/wsdl/parser.rb +163 -0
  392. data/vendor/javascripts/emscripted-ruby/lib/wsdl/part.rb +52 -0
  393. data/vendor/javascripts/emscripted-ruby/lib/wsdl/port.rb +84 -0
  394. data/vendor/javascripts/emscripted-ruby/lib/wsdl/portType.rb +73 -0
  395. data/vendor/javascripts/emscripted-ruby/lib/wsdl/service.rb +61 -0
  396. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/address.rb +40 -0
  397. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/binding.rb +49 -0
  398. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/body.rb +56 -0
  399. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/cgiStubCreator.rb +76 -0
  400. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreator.rb +314 -0
  401. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreatorSupport.rb +126 -0
  402. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/clientSkeltonCreator.rb +78 -0
  403. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/complexType.rb +161 -0
  404. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/data.rb +42 -0
  405. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/definitions.rb +149 -0
  406. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/driverCreator.rb +95 -0
  407. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/element.rb +28 -0
  408. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/fault.rb +56 -0
  409. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/header.rb +86 -0
  410. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/headerfault.rb +56 -0
  411. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/mappingRegistryCreator.rb +92 -0
  412. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/methodDefCreator.rb +228 -0
  413. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/operation.rb +122 -0
  414. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/servantSkeltonCreator.rb +67 -0
  415. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/standaloneServerStubCreator.rb +85 -0
  416. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/wsdl2ruby.rb +176 -0
  417. data/vendor/javascripts/emscripted-ruby/lib/wsdl/types.rb +43 -0
  418. data/vendor/javascripts/emscripted-ruby/lib/wsdl/wsdl.rb +23 -0
  419. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/all.rb +69 -0
  420. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/annotation.rb +34 -0
  421. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/any.rb +56 -0
  422. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/attribute.rb +127 -0
  423. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/choice.rb +69 -0
  424. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexContent.rb +92 -0
  425. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexType.rb +139 -0
  426. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/content.rb +96 -0
  427. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/data.rb +80 -0
  428. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/element.rb +154 -0
  429. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  430. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/import.rb +65 -0
  431. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/importer.rb +87 -0
  432. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/include.rb +54 -0
  433. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/length.rb +35 -0
  434. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/parser.rb +166 -0
  435. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/pattern.rb +36 -0
  436. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/schema.rb +143 -0
  437. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/sequence.rb +69 -0
  438. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleContent.rb +65 -0
  439. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  440. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleRestriction.rb +73 -0
  441. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleType.rb +73 -0
  442. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/unique.rb +34 -0
  443. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  444. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/.document +1 -0
  445. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/README.txt +31 -0
  446. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/base64.rb +81 -0
  447. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/client.rb +624 -0
  448. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/config.rb +40 -0
  449. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/create.rb +290 -0
  450. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/datetime.rb +142 -0
  451. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/httpserver.rb +178 -0
  452. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/marshal.rb +76 -0
  453. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/parser.rb +813 -0
  454. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/server.rb +780 -0
  455. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/utils.rb +165 -0
  456. data/vendor/javascripts/emscripted-ruby/lib/xsd/charset.rb +187 -0
  457. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen.rb +12 -0
  458. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/classdef.rb +203 -0
  459. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/commentdef.rb +34 -0
  460. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/gensupport.rb +166 -0
  461. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/methoddef.rb +63 -0
  462. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/moduledef.rb +191 -0
  463. data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes.rb +1269 -0
  464. data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes1999.rb +20 -0
  465. data/vendor/javascripts/emscripted-ruby/lib/xsd/iconvcharset.rb +33 -0
  466. data/vendor/javascripts/emscripted-ruby/lib/xsd/mapping.rb +42 -0
  467. data/vendor/javascripts/emscripted-ruby/lib/xsd/namedelements.rb +95 -0
  468. data/vendor/javascripts/emscripted-ruby/lib/xsd/ns.rb +140 -0
  469. data/vendor/javascripts/emscripted-ruby/lib/xsd/qname.rb +78 -0
  470. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser.rb +61 -0
  471. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/parser.rb +96 -0
  472. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  473. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlparser.rb +50 -0
  474. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  475. data/vendor/javascripts/emscripted-ruby/lib/yaml.rb +440 -0
  476. data/vendor/javascripts/emscripted-ruby/lib/yaml/baseemitter.rb +247 -0
  477. data/vendor/javascripts/emscripted-ruby/lib/yaml/basenode.rb +216 -0
  478. data/vendor/javascripts/emscripted-ruby/lib/yaml/constants.rb +45 -0
  479. data/vendor/javascripts/emscripted-ruby/lib/yaml/dbm.rb +111 -0
  480. data/vendor/javascripts/emscripted-ruby/lib/yaml/encoding.rb +33 -0
  481. data/vendor/javascripts/emscripted-ruby/lib/yaml/error.rb +34 -0
  482. data/vendor/javascripts/emscripted-ruby/lib/yaml/loader.rb +14 -0
  483. data/vendor/javascripts/emscripted-ruby/lib/yaml/rubytypes.rb +408 -0
  484. data/vendor/javascripts/emscripted-ruby/lib/yaml/store.rb +43 -0
  485. data/vendor/javascripts/emscripted-ruby/lib/yaml/stream.rb +40 -0
  486. data/vendor/javascripts/emscripted-ruby/lib/yaml/stringio.rb +83 -0
  487. data/vendor/javascripts/emscripted-ruby/lib/yaml/syck.rb +19 -0
  488. data/vendor/javascripts/emscripted-ruby/lib/yaml/tag.rb +91 -0
  489. data/vendor/javascripts/emscripted-ruby/lib/yaml/types.rb +192 -0
  490. data/vendor/javascripts/emscripted-ruby/lib/yaml/yamlnode.rb +54 -0
  491. data/vendor/javascripts/emscripted-ruby/lib/yaml/ypath.rb +52 -0
  492. data/vendor/javascripts/emscripted-ruby/ruby.closure.js +7201 -0
  493. metadata +554 -0
@@ -0,0 +1,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
+