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,16 @@
1
+ #
2
+ # irb/version.rb - irb version definition file
3
+ # $Release Version: 0.9.5$
4
+ # $Revision: 11708 $
5
+ # $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
6
+ # by Keiju ISHITSUKA(keiju@ishitsuka.com)
7
+ #
8
+ # --
9
+ #
10
+ #
11
+ #
12
+
13
+ module IRB
14
+ @RELEASE_VERSION = "0.9.5"
15
+ @LAST_UPDATE_DATE = "05/04/13"
16
+ end
@@ -0,0 +1,107 @@
1
+ #
2
+ # irb/workspace-binding.rb -
3
+ # $Release Version: 0.9.5$
4
+ # $Revision: 11708 $
5
+ # $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
6
+ # by Keiju ISHITSUKA(keiju@ruby-lang.org)
7
+ #
8
+ # --
9
+ #
10
+ #
11
+ #
12
+ module IRB
13
+ class WorkSpace
14
+ # create new workspace. set self to main if specified, otherwise
15
+ # inherit main from TOPLEVEL_BINDING.
16
+ def initialize(*main)
17
+ if main[0].kind_of?(Binding)
18
+ @binding = main.shift
19
+ elsif IRB.conf[:SINGLE_IRB]
20
+ @binding = TOPLEVEL_BINDING
21
+ else
22
+ case IRB.conf[:CONTEXT_MODE]
23
+ when 0 # binding in proc on TOPLEVEL_BINDING
24
+ @binding = eval("proc{binding}.call",
25
+ TOPLEVEL_BINDING,
26
+ __FILE__,
27
+ __LINE__)
28
+ when 1 # binding in loaded file
29
+ require "tempfile"
30
+ f = Tempfile.open("irb-binding")
31
+ f.print <<EOF
32
+ $binding = binding
33
+ EOF
34
+ f.close
35
+ load f.path
36
+ @binding = $binding
37
+
38
+ when 2 # binding in loaded file(thread use)
39
+ unless defined? BINDING_QUEUE
40
+ require "thread"
41
+
42
+ IRB.const_set("BINDING_QUEUE", SizedQueue.new(1))
43
+ Thread.abort_on_exception = true
44
+ Thread.start do
45
+ eval "require \"irb/ws-for-case-2\"", TOPLEVEL_BINDING, __FILE__, __LINE__
46
+ end
47
+ Thread.pass
48
+ end
49
+ @binding = BINDING_QUEUE.pop
50
+
51
+ when 3 # binging in function on TOPLEVEL_BINDING(default)
52
+ @binding = eval("def irb_binding; binding; end; irb_binding",
53
+ TOPLEVEL_BINDING,
54
+ __FILE__,
55
+ __LINE__ - 3)
56
+ end
57
+ end
58
+ if main.empty?
59
+ @main = eval("self", @binding)
60
+ else
61
+ @main = main[0]
62
+ IRB.conf[:__MAIN__] = @main
63
+ case @main
64
+ when Module
65
+ @binding = eval("IRB.conf[:__MAIN__].module_eval('binding', __FILE__, __LINE__)", @binding, __FILE__, __LINE__)
66
+ else
67
+ begin
68
+ @binding = eval("IRB.conf[:__MAIN__].instance_eval('binding', __FILE__, __LINE__)", @binding, __FILE__, __LINE__)
69
+ rescue TypeError
70
+ IRB.fail CantChangeBinding, @main.inspect
71
+ end
72
+ end
73
+ end
74
+ eval("_=nil", @binding)
75
+ end
76
+
77
+ attr_reader :binding
78
+ attr_reader :main
79
+
80
+ def evaluate(context, statements, file = __FILE__, line = __LINE__)
81
+ eval(statements, @binding, file, line)
82
+ end
83
+
84
+ # error message manipulator
85
+ def filter_backtrace(bt)
86
+ case IRB.conf[:CONTEXT_MODE]
87
+ when 0
88
+ return nil if bt =~ /\(irb_local_binding\)/
89
+ when 1
90
+ if(bt =~ %r!/tmp/irb-binding! or
91
+ bt =~ %r!irb/.*\.rb! or
92
+ bt =~ /irb\.rb/)
93
+ return nil
94
+ end
95
+ when 2
96
+ return nil if bt =~ /irb\/.*\.rb/
97
+ when 3
98
+ return nil if bt =~ /irb\/.*\.rb/
99
+ bt.sub!(/:\s*in `irb_binding'/){""}
100
+ end
101
+ bt
102
+ end
103
+
104
+ def IRB.delete_caller
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,15 @@
1
+ #
2
+ # irb/ws-for-case-2.rb -
3
+ # $Release Version: 0.9.5$
4
+ # $Revision: 11708 $
5
+ # $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
6
+ # by Keiju ISHITSUKA(keiju@ruby-lang.org)
7
+ #
8
+ # --
9
+ #
10
+ #
11
+ #
12
+
13
+ while true
14
+ IRB::BINDING_QUEUE.push b = binding
15
+ end
@@ -0,0 +1,86 @@
1
+ #
2
+ # xmp.rb - irb version of gotoken xmp
3
+ # $Release Version: 0.9$
4
+ # $Revision: 11708 $
5
+ # $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
6
+ # by Keiju ISHITSUKA(Nippon Rational Inc.)
7
+ #
8
+ # --
9
+ #
10
+ #
11
+ #
12
+
13
+ require "irb"
14
+ require "irb/frame"
15
+
16
+ class XMP
17
+ @RCS_ID='-$Id: xmp.rb 11708 2007-02-12 23:01:19Z shyouhei $-'
18
+
19
+ def initialize(bind = nil)
20
+ IRB.init_config(nil)
21
+ #IRB.parse_opts
22
+ #IRB.load_modules
23
+
24
+ IRB.conf[:PROMPT_MODE] = :XMP
25
+
26
+ bind = IRB::Frame.top(1) unless bind
27
+ ws = IRB::WorkSpace.new(bind)
28
+ @io = StringInputMethod.new
29
+ @irb = IRB::Irb.new(ws, @io)
30
+ @irb.context.ignore_sigint = false
31
+
32
+ # IRB.conf[:IRB_RC].call(@irb.context) if IRB.conf[:IRB_RC]
33
+ IRB.conf[:MAIN_CONTEXT] = @irb.context
34
+ end
35
+
36
+ def puts(exps)
37
+ @io.puts exps
38
+
39
+ if @irb.context.ignore_sigint
40
+ begin
41
+ trap_proc_b = trap("SIGINT"){@irb.signal_handle}
42
+ catch(:IRB_EXIT) do
43
+ @irb.eval_input
44
+ end
45
+ ensure
46
+ trap("SIGINT", trap_proc_b)
47
+ end
48
+ else
49
+ catch(:IRB_EXIT) do
50
+ @irb.eval_input
51
+ end
52
+ end
53
+ end
54
+
55
+ class StringInputMethod < IRB::InputMethod
56
+ def initialize
57
+ super
58
+ @exps = []
59
+ end
60
+
61
+ def eof?
62
+ @exps.empty?
63
+ end
64
+
65
+ def gets
66
+ while l = @exps.shift
67
+ next if /^\s+$/ =~ l
68
+ l.concat "\n"
69
+ print @prompt, l
70
+ break
71
+ end
72
+ l
73
+ end
74
+
75
+ def puts(exps)
76
+ @exps.concat exps.split(/\n/)
77
+ end
78
+ end
79
+ end
80
+
81
+ def xmp(exps, bind = nil)
82
+ bind = IRB::Frame.top(1) unless bind
83
+ xmp = XMP.new(bind)
84
+ xmp.puts exps
85
+ xmp
86
+ end
@@ -0,0 +1,220 @@
1
+ # jcode.rb - ruby code to handle japanese (EUC/SJIS) string
2
+
3
+ if $VERBOSE && $KCODE == "NONE"
4
+ warn "Warning: $KCODE is NONE."
5
+ end
6
+
7
+ $vsave, $VERBOSE = $VERBOSE, false
8
+ class String
9
+ warn "feel free for some warnings:\n" if $VERBOSE
10
+
11
+ def _regex_quote(str)
12
+ str.gsub(/(\\[\[\]\-\\])|\\(.)|([\[\]\\])/) do
13
+ $1 || $2 || '\\' + $3
14
+ end
15
+ end
16
+ private :_regex_quote
17
+
18
+ PATTERN_SJIS = '[\x81-\x9f\xe0-\xef][\x40-\x7e\x80-\xfc]'
19
+ PATTERN_EUC = '[\xa1-\xfe][\xa1-\xfe]'
20
+ PATTERN_UTF8 = '[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf]'
21
+
22
+ RE_SJIS = Regexp.new(PATTERN_SJIS, 0, 'n')
23
+ RE_EUC = Regexp.new(PATTERN_EUC, 0, 'n')
24
+ RE_UTF8 = Regexp.new(PATTERN_UTF8, 0, 'n')
25
+
26
+ SUCC = {}
27
+ SUCC['s'] = Hash.new(1)
28
+ for i in 0 .. 0x3f
29
+ SUCC['s'][i.chr] = 0x40 - i
30
+ end
31
+ SUCC['s']["\x7e"] = 0x80 - 0x7e
32
+ SUCC['s']["\xfd"] = 0x100 - 0xfd
33
+ SUCC['s']["\xfe"] = 0x100 - 0xfe
34
+ SUCC['s']["\xff"] = 0x100 - 0xff
35
+ SUCC['e'] = Hash.new(1)
36
+ for i in 0 .. 0xa0
37
+ SUCC['e'][i.chr] = 0xa1 - i
38
+ end
39
+ SUCC['e']["\xfe"] = 2
40
+ SUCC['u'] = Hash.new(1)
41
+ for i in 0 .. 0x7f
42
+ SUCC['u'][i.chr] = 0x80 - i
43
+ end
44
+ SUCC['u']["\xbf"] = 0x100 - 0xbf
45
+
46
+ def mbchar?
47
+ case $KCODE[0]
48
+ when ?s, ?S
49
+ self =~ RE_SJIS
50
+ when ?e, ?E
51
+ self =~ RE_EUC
52
+ when ?u, ?U
53
+ self =~ RE_UTF8
54
+ else
55
+ nil
56
+ end
57
+ end
58
+
59
+ def end_regexp
60
+ case $KCODE[0]
61
+ when ?s, ?S
62
+ /#{PATTERN_SJIS}$/on
63
+ when ?e, ?E
64
+ /#{PATTERN_EUC}$/on
65
+ when ?u, ?U
66
+ /#{PATTERN_UTF8}$/on
67
+ else
68
+ /.$/on
69
+ end
70
+ end
71
+
72
+ alias original_succ! succ!
73
+ private :original_succ!
74
+
75
+ alias original_succ succ
76
+ private :original_succ
77
+
78
+ def succ!
79
+ reg = end_regexp
80
+ if $KCODE != 'NONE' && self =~ reg
81
+ succ_table = SUCC[$KCODE[0,1].downcase]
82
+ begin
83
+ self[-1] += succ_table[self[-1]]
84
+ self[-2] += 1 if self[-1] == 0
85
+ end while self !~ reg
86
+ self
87
+ else
88
+ original_succ!
89
+ end
90
+ end
91
+
92
+ def succ
93
+ str = self.dup
94
+ str.succ! or str
95
+ end
96
+
97
+ private
98
+
99
+ def _expand_ch str
100
+ a = []
101
+ str.scan(/(?:\\(.)|([^\\]))-(?:\\(.)|([^\\]))|(?:\\(.)|(.))/m) do
102
+ from = $1 || $2
103
+ to = $3 || $4
104
+ one = $5 || $6
105
+ if one
106
+ a.push one
107
+ elsif from.length != to.length
108
+ next
109
+ elsif from.length == 1
110
+ from[0].upto(to[0]) { |c| a.push c.chr }
111
+ else
112
+ from.upto(to) { |c| a.push c }
113
+ end
114
+ end
115
+ a
116
+ end
117
+
118
+ def expand_ch_hash from, to
119
+ h = {}
120
+ afrom = _expand_ch(from)
121
+ ato = _expand_ch(to)
122
+ afrom.each_with_index do |x,i| h[x] = ato[i] || ato[-1] end
123
+ h
124
+ end
125
+
126
+ HashCache = {}
127
+ TrPatternCache = {}
128
+ DeletePatternCache = {}
129
+ SqueezePatternCache = {}
130
+
131
+ public
132
+
133
+ def tr!(from, to)
134
+ return nil if from == ""
135
+ return self.delete!(from) if to == ""
136
+
137
+ pattern = TrPatternCache[from] ||= /[#{_regex_quote(from)}]/
138
+ if from[0] == ?^
139
+ last = /.$/.match(to)[0]
140
+ self.gsub!(pattern, last)
141
+ else
142
+ h = HashCache[from + "1-0" + to] ||= expand_ch_hash(from, to)
143
+ self.gsub!(pattern) do |c| h[c] end
144
+ end
145
+ end
146
+
147
+ def tr(from, to)
148
+ (str = self.dup).tr!(from, to) or str
149
+ end
150
+
151
+ def delete!(del)
152
+ return nil if del == ""
153
+ self.gsub!(DeletePatternCache[del] ||= /[#{_regex_quote(del)}]+/, '')
154
+ end
155
+
156
+ def delete(del)
157
+ (str = self.dup).delete!(del) or str
158
+ end
159
+
160
+ def squeeze!(del=nil)
161
+ return nil if del == ""
162
+ pattern =
163
+ if del
164
+ SqueezePatternCache[del] ||= /([#{_regex_quote(del)}])\1+/
165
+ else
166
+ /(.|\n)\1+/
167
+ end
168
+ self.gsub!(pattern, '\1')
169
+ end
170
+
171
+ def squeeze(del=nil)
172
+ (str = self.dup).squeeze!(del) or str
173
+ end
174
+
175
+ def tr_s!(from, to)
176
+ return self.delete!(from) if to.length == 0
177
+
178
+ pattern = SqueezePatternCache[from] ||= /([#{_regex_quote(from)}])\1*/
179
+ if from[0] == ?^
180
+ last = /.$/.match(to)[0]
181
+ self.gsub!(pattern, last)
182
+ else
183
+ h = HashCache[from + "1-0" + to] ||= expand_ch_hash(from, to)
184
+ self.gsub!(pattern) do h[$1] end
185
+ end
186
+ end
187
+
188
+ def tr_s(from, to)
189
+ (str = self.dup).tr_s!(from,to) or str
190
+ end
191
+
192
+ def chop!
193
+ self.gsub!(/(?:.|\r?\n)\z/, '')
194
+ end
195
+
196
+ def chop
197
+ (str = self.dup).chop! or str
198
+ end
199
+
200
+ def jlength
201
+ self.gsub(/[^\Wa-zA-Z_\d]/, ' ').length
202
+ end
203
+ alias jsize jlength
204
+
205
+ def jcount(str)
206
+ self.delete("^#{str}").jlength
207
+ end
208
+
209
+ def each_char
210
+ if block_given?
211
+ scan(/./m) do |x|
212
+ yield x
213
+ end
214
+ else
215
+ scan(/./m)
216
+ end
217
+ end
218
+
219
+ end
220
+ $VERBOSE = $vsave
@@ -0,0 +1,703 @@
1
+ # logger.rb - saimple logging utility
2
+ # Copyright (C) 2000-2003, 2005 NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>.
3
+
4
+ require 'monitor'
5
+
6
+ # Simple logging utility.
7
+ #
8
+ # Author:: NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>
9
+ # Documentation:: NAKAMURA, Hiroshi and Gavin Sinclair
10
+ # License::
11
+ # You can redistribute it and/or modify it under the same terms of Ruby's
12
+ # license; either the dual license version in 2003, or any later version.
13
+ # Revision:: $Id: logger.rb 11708 2007-02-12 23:01:19Z shyouhei $
14
+ #
15
+ # == Description
16
+ #
17
+ # The Logger class provides a simple but sophisticated logging utility that
18
+ # anyone can use because it's included in the Ruby 1.8.x standard library.
19
+ #
20
+ # The HOWTOs below give a code-based overview of Logger's usage, but the basic
21
+ # concept is as follows. You create a Logger object (output to a file or
22
+ # elsewhere), and use it to log messages. The messages will have varying
23
+ # levels (+info+, +error+, etc), reflecting their varying importance. The
24
+ # levels, and their meanings, are:
25
+ #
26
+ # +FATAL+:: an unhandleable error that results in a program crash
27
+ # +ERROR+:: a handleable error condition
28
+ # +WARN+:: a warning
29
+ # +INFO+:: generic (useful) information about system operation
30
+ # +DEBUG+:: low-level information for developers
31
+ #
32
+ # So each message has a level, and the Logger itself has a level, which acts
33
+ # as a filter, so you can control the amount of information emitted from the
34
+ # logger without having to remove actual messages.
35
+ #
36
+ # For instance, in a production system, you may have your logger(s) set to
37
+ # +INFO+ (or +WARN+ if you don't want the log files growing large with
38
+ # repetitive information). When you are developing it, though, you probably
39
+ # want to know about the program's internal state, and would set them to
40
+ # +DEBUG+.
41
+ #
42
+ # === Example
43
+ #
44
+ # A simple example demonstrates the above explanation:
45
+ #
46
+ # log = Logger.new(STDOUT)
47
+ # log.level = Logger::WARN
48
+ #
49
+ # log.debug("Created logger")
50
+ # log.info("Program started")
51
+ # log.warn("Nothing to do!")
52
+ #
53
+ # begin
54
+ # File.each_line(path) do |line|
55
+ # unless line =~ /^(\w+) = (.*)$/
56
+ # log.error("Line in wrong format: #{line}")
57
+ # end
58
+ # end
59
+ # rescue => err
60
+ # log.fatal("Caught exception; exiting")
61
+ # log.fatal(err)
62
+ # end
63
+ #
64
+ # Because the Logger's level is set to +WARN+, only the warning, error, and
65
+ # fatal messages are recorded. The debug and info messages are silently
66
+ # discarded.
67
+ #
68
+ # === Features
69
+ #
70
+ # There are several interesting features that Logger provides, like
71
+ # auto-rolling of log files, setting the format of log messages, and
72
+ # specifying a program name in conjunction with the message. The next section
73
+ # shows you how to achieve these things.
74
+ #
75
+ #
76
+ # == HOWTOs
77
+ #
78
+ # === How to create a logger
79
+ #
80
+ # The options below give you various choices, in more or less increasing
81
+ # complexity.
82
+ #
83
+ # 1. Create a logger which logs messages to STDERR/STDOUT.
84
+ #
85
+ # logger = Logger.new(STDERR)
86
+ # logger = Logger.new(STDOUT)
87
+ #
88
+ # 2. Create a logger for the file which has the specified name.
89
+ #
90
+ # logger = Logger.new('logfile.log')
91
+ #
92
+ # 3. Create a logger for the specified file.
93
+ #
94
+ # file = File.open('foo.log', File::WRONLY | File::APPEND)
95
+ # # To create new (and to remove old) logfile, add File::CREAT like;
96
+ # # file = open('foo.log', File::WRONLY | File::APPEND | File::CREAT)
97
+ # logger = Logger.new(file)
98
+ #
99
+ # 4. Create a logger which ages logfile once it reaches a certain size. Leave
100
+ # 10 "old log files" and each file is about 1,024,000 bytes.
101
+ #
102
+ # logger = Logger.new('foo.log', 10, 1024000)
103
+ #
104
+ # 5. Create a logger which ages logfile daily/weekly/monthly.
105
+ #
106
+ # logger = Logger.new('foo.log', 'daily')
107
+ # logger = Logger.new('foo.log', 'weekly')
108
+ # logger = Logger.new('foo.log', 'monthly')
109
+ #
110
+ # === How to log a message
111
+ #
112
+ # Notice the different methods (+fatal+, +error+, +info+) being used to log
113
+ # messages of various levels. Other methods in this family are +warn+ and
114
+ # +debug+. +add+ is used below to log a message of an arbitrary (perhaps
115
+ # dynamic) level.
116
+ #
117
+ # 1. Message in block.
118
+ #
119
+ # logger.fatal { "Argument 'foo' not given." }
120
+ #
121
+ # 2. Message as a string.
122
+ #
123
+ # logger.error "Argument #{ @foo } mismatch."
124
+ #
125
+ # 3. With progname.
126
+ #
127
+ # logger.info('initialize') { "Initializing..." }
128
+ #
129
+ # 4. With severity.
130
+ #
131
+ # logger.add(Logger::FATAL) { 'Fatal error!' }
132
+ #
133
+ # === How to close a logger
134
+ #
135
+ # logger.close
136
+ #
137
+ # === Setting severity threshold
138
+ #
139
+ # 1. Original interface.
140
+ #
141
+ # logger.sev_threshold = Logger::WARN
142
+ #
143
+ # 2. Log4r (somewhat) compatible interface.
144
+ #
145
+ # logger.level = Logger::INFO
146
+ #
147
+ # DEBUG < INFO < WARN < ERROR < FATAL < UNKNOWN
148
+ #
149
+ #
150
+ # == Format
151
+ #
152
+ # Log messages are rendered in the output stream in a certain format. The
153
+ # default format and a sample are shown below:
154
+ #
155
+ # Log format:
156
+ # SeverityID, [Date Time mSec #pid] SeverityLabel -- ProgName: message
157
+ #
158
+ # Log sample:
159
+ # I, [Wed Mar 03 02:34:24 JST 1999 895701 #19074] INFO -- Main: info.
160
+ #
161
+ # You may change the date and time format in this manner:
162
+ #
163
+ # logger.datetime_format = "%Y-%m-%d %H:%M:%S"
164
+ # # e.g. "2004-01-03 00:54:26"
165
+ #
166
+ # There is currently no supported way to change the overall format, but you may
167
+ # have some luck hacking the Format constant.
168
+ #
169
+
170
+
171
+ class Logger
172
+ VERSION = "1.2.6"
173
+ /: (\S+),v (\S+)/ =~ %q$Id: logger.rb 11708 2007-02-12 23:01:19Z shyouhei $
174
+ ProgName = "#{$1}/#{$2}"
175
+
176
+ class Error < RuntimeError; end
177
+ class ShiftingError < Error; end
178
+
179
+ # Logging severity.
180
+ module Severity
181
+ DEBUG = 0
182
+ INFO = 1
183
+ WARN = 2
184
+ ERROR = 3
185
+ FATAL = 4
186
+ UNKNOWN = 5
187
+ end
188
+ include Severity
189
+
190
+ # Logging severity threshold (e.g. <tt>Logger::INFO</tt>).
191
+ attr_accessor :level
192
+
193
+ # Logging program name.
194
+ attr_accessor :progname
195
+
196
+ # Logging date-time format (string passed to +strftime+).
197
+ def datetime_format=(datetime_format)
198
+ @default_formatter.datetime_format = datetime_format
199
+ end
200
+
201
+ def datetime_format
202
+ @default_formatter.datetime_format
203
+ end
204
+
205
+ # Logging formatter. formatter#call is invoked with 4 arguments; severity,
206
+ # time, progname and msg for each log. Bear in mind that time is a Time and
207
+ # msg is an Object that user passed and it could not be a String. It is
208
+ # expected to return a logdev#write-able Object. Default formatter is used
209
+ # when no formatter is set.
210
+ attr_accessor :formatter
211
+
212
+ alias sev_threshold level
213
+ alias sev_threshold= level=
214
+
215
+ # Returns +true+ iff the current severity level allows for the printing of
216
+ # +DEBUG+ messages.
217
+ def debug?; @level <= DEBUG; end
218
+
219
+ # Returns +true+ iff the current severity level allows for the printing of
220
+ # +INFO+ messages.
221
+ def info?; @level <= INFO; end
222
+
223
+ # Returns +true+ iff the current severity level allows for the printing of
224
+ # +WARN+ messages.
225
+ def warn?; @level <= WARN; end
226
+
227
+ # Returns +true+ iff the current severity level allows for the printing of
228
+ # +ERROR+ messages.
229
+ def error?; @level <= ERROR; end
230
+
231
+ # Returns +true+ iff the current severity level allows for the printing of
232
+ # +FATAL+ messages.
233
+ def fatal?; @level <= FATAL; end
234
+
235
+ #
236
+ # === Synopsis
237
+ #
238
+ # Logger.new(name, shift_age = 7, shift_size = 1048576)
239
+ # Logger.new(name, shift_age = 'weekly')
240
+ #
241
+ # === Args
242
+ #
243
+ # +logdev+::
244
+ # The log device. This is a filename (String) or IO object (typically
245
+ # +STDOUT+, +STDERR+, or an open file).
246
+ # +shift_age+::
247
+ # Number of old log files to keep, *or* frequency of rotation (+daily+,
248
+ # +weekly+ or +monthly+).
249
+ # +shift_size+::
250
+ # Maximum logfile size (only applies when +shift_age+ is a number).
251
+ #
252
+ # === Description
253
+ #
254
+ # Create an instance.
255
+ #
256
+ def initialize(logdev, shift_age = 0, shift_size = 1048576)
257
+ @progname = nil
258
+ @level = DEBUG
259
+ @default_formatter = Formatter.new
260
+ @formatter = nil
261
+ @logdev = nil
262
+ if logdev
263
+ @logdev = LogDevice.new(logdev, :shift_age => shift_age,
264
+ :shift_size => shift_size)
265
+ end
266
+ end
267
+
268
+ #
269
+ # === Synopsis
270
+ #
271
+ # Logger#add(severity, message = nil, progname = nil) { ... }
272
+ #
273
+ # === Args
274
+ #
275
+ # +severity+::
276
+ # Severity. Constants are defined in Logger namespace: +DEBUG+, +INFO+,
277
+ # +WARN+, +ERROR+, +FATAL+, or +UNKNOWN+.
278
+ # +message+::
279
+ # The log message. A String or Exception.
280
+ # +progname+::
281
+ # Program name string. Can be omitted. Treated as a message if no +message+ and
282
+ # +block+ are given.
283
+ # +block+::
284
+ # Can be omitted. Called to get a message string if +message+ is nil.
285
+ #
286
+ # === Return
287
+ #
288
+ # +true+ if successful, +false+ otherwise.
289
+ #
290
+ # When the given severity is not high enough (for this particular logger), log
291
+ # no message, and return +true+.
292
+ #
293
+ # === Description
294
+ #
295
+ # Log a message if the given severity is high enough. This is the generic
296
+ # logging method. Users will be more inclined to use #debug, #info, #warn,
297
+ # #error, and #fatal.
298
+ #
299
+ # <b>Message format</b>: +message+ can be any object, but it has to be
300
+ # converted to a String in order to log it. Generally, +inspect+ is used
301
+ # if the given object is not a String.
302
+ # A special case is an +Exception+ object, which will be printed in detail,
303
+ # including message, class, and backtrace. See #msg2str for the
304
+ # implementation if required.
305
+ #
306
+ # === Bugs
307
+ #
308
+ # * Logfile is not locked.
309
+ # * Append open does not need to lock file.
310
+ # * But on the OS which supports multi I/O, records possibly be mixed.
311
+ #
312
+ def add(severity, message = nil, progname = nil, &block)
313
+ severity ||= UNKNOWN
314
+ if @logdev.nil? or severity < @level
315
+ return true
316
+ end
317
+ progname ||= @progname
318
+ if message.nil?
319
+ if block_given?
320
+ message = yield
321
+ else
322
+ message = progname
323
+ progname = @progname
324
+ end
325
+ end
326
+ @logdev.write(
327
+ format_message(format_severity(severity), Time.now, progname, message))
328
+ true
329
+ end
330
+ alias log add
331
+
332
+ #
333
+ # Dump given message to the log device without any formatting. If no log
334
+ # device exists, return +nil+.
335
+ #
336
+ def <<(msg)
337
+ unless @logdev.nil?
338
+ @logdev.write(msg)
339
+ end
340
+ end
341
+
342
+ #
343
+ # Log a +DEBUG+ message.
344
+ #
345
+ # See #info for more information.
346
+ #
347
+ def debug(progname = nil, &block)
348
+ add(DEBUG, nil, progname, &block)
349
+ end
350
+
351
+ #
352
+ # Log an +INFO+ message.
353
+ #
354
+ # The message can come either from the +progname+ argument or the +block+. If
355
+ # both are provided, then the +block+ is used as the message, and +progname+
356
+ # is used as the program name.
357
+ #
358
+ # === Examples
359
+ #
360
+ # logger.info("MainApp") { "Received connection from #{ip}" }
361
+ # # ...
362
+ # logger.info "Waiting for input from user"
363
+ # # ...
364
+ # logger.info { "User typed #{input}" }
365
+ #
366
+ # You'll probably stick to the second form above, unless you want to provide a
367
+ # program name (which you can do with <tt>Logger#progname=</tt> as well).
368
+ #
369
+ # === Return
370
+ #
371
+ # See #add.
372
+ #
373
+ def info(progname = nil, &block)
374
+ add(INFO, nil, progname, &block)
375
+ end
376
+
377
+ #
378
+ # Log a +WARN+ message.
379
+ #
380
+ # See #info for more information.
381
+ #
382
+ def warn(progname = nil, &block)
383
+ add(WARN, nil, progname, &block)
384
+ end
385
+
386
+ #
387
+ # Log an +ERROR+ message.
388
+ #
389
+ # See #info for more information.
390
+ #
391
+ def error(progname = nil, &block)
392
+ add(ERROR, nil, progname, &block)
393
+ end
394
+
395
+ #
396
+ # Log a +FATAL+ message.
397
+ #
398
+ # See #info for more information.
399
+ #
400
+ def fatal(progname = nil, &block)
401
+ add(FATAL, nil, progname, &block)
402
+ end
403
+
404
+ #
405
+ # Log an +UNKNOWN+ message. This will be printed no matter what the logger
406
+ # level.
407
+ #
408
+ # See #info for more information.
409
+ #
410
+ def unknown(progname = nil, &block)
411
+ add(UNKNOWN, nil, progname, &block)
412
+ end
413
+
414
+ #
415
+ # Close the logging device.
416
+ #
417
+ def close
418
+ @logdev.close if @logdev
419
+ end
420
+
421
+ private
422
+
423
+ # Severity label for logging. (max 5 char)
424
+ SEV_LABEL = %w(DEBUG INFO WARN ERROR FATAL ANY)
425
+
426
+ def format_severity(severity)
427
+ SEV_LABEL[severity] || 'ANY'
428
+ end
429
+
430
+ def format_message(severity, datetime, progname, msg)
431
+ (@formatter || @default_formatter).call(severity, datetime, progname, msg)
432
+ end
433
+
434
+
435
+ class Formatter
436
+ Format = "%s, [%s#%d] %5s -- %s: %s\n"
437
+
438
+ attr_accessor :datetime_format
439
+
440
+ def initialize
441
+ @datetime_format = nil
442
+ end
443
+
444
+ def call(severity, time, progname, msg)
445
+ Format % [severity[0..0], format_datetime(time), $$, severity, progname,
446
+ msg2str(msg)]
447
+ end
448
+
449
+ private
450
+
451
+ def format_datetime(time)
452
+ if @datetime_format.nil?
453
+ time.strftime("%Y-%m-%dT%H:%M:%S.") << "%06d " % time.usec
454
+ else
455
+ time.strftime(@datetime_format)
456
+ end
457
+ end
458
+
459
+ def msg2str(msg)
460
+ case msg
461
+ when ::String
462
+ msg
463
+ when ::Exception
464
+ "#{ msg.message } (#{ msg.class })\n" <<
465
+ (msg.backtrace || []).join("\n")
466
+ else
467
+ msg.inspect
468
+ end
469
+ end
470
+ end
471
+
472
+
473
+ class LogDevice
474
+ attr_reader :dev
475
+ attr_reader :filename
476
+
477
+ class LogDeviceMutex
478
+ include MonitorMixin
479
+ end
480
+
481
+ def initialize(log = nil, opt = {})
482
+ @dev = @filename = @shift_age = @shift_size = nil
483
+ @mutex = LogDeviceMutex.new
484
+ if log.respond_to?(:write) and log.respond_to?(:close)
485
+ @dev = log
486
+ else
487
+ @dev = open_logfile(log)
488
+ @dev.sync = true
489
+ @filename = log
490
+ @shift_age = opt[:shift_age] || 7
491
+ @shift_size = opt[:shift_size] || 1048576
492
+ end
493
+ end
494
+
495
+ def write(message)
496
+ @mutex.synchronize do
497
+ if @shift_age and @dev.respond_to?(:stat)
498
+ begin
499
+ check_shift_log
500
+ rescue
501
+ raise Logger::ShiftingError.new("Shifting failed. #{$!}")
502
+ end
503
+ end
504
+ @dev.write(message)
505
+ end
506
+ end
507
+
508
+ def close
509
+ @mutex.synchronize do
510
+ @dev.close
511
+ end
512
+ end
513
+
514
+ private
515
+
516
+ def open_logfile(filename)
517
+ if (FileTest.exist?(filename))
518
+ open(filename, (File::WRONLY | File::APPEND))
519
+ else
520
+ create_logfile(filename)
521
+ end
522
+ end
523
+
524
+ def create_logfile(filename)
525
+ logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT))
526
+ logdev.sync = true
527
+ add_log_header(logdev)
528
+ logdev
529
+ end
530
+
531
+ def add_log_header(file)
532
+ file.write(
533
+ "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
534
+ )
535
+ end
536
+
537
+ SiD = 24 * 60 * 60
538
+
539
+ def check_shift_log
540
+ if @shift_age.is_a?(Integer)
541
+ # Note: always returns false if '0'.
542
+ if @filename && (@shift_age > 0) && (@dev.stat.size > @shift_size)
543
+ shift_log_age
544
+ end
545
+ else
546
+ now = Time.now
547
+ if @dev.stat.mtime <= previous_period_end(now)
548
+ shift_log_period(now)
549
+ end
550
+ end
551
+ end
552
+
553
+ def shift_log_age
554
+ (@shift_age-3).downto(0) do |i|
555
+ if FileTest.exist?("#{@filename}.#{i}")
556
+ File.rename("#{@filename}.#{i}", "#{@filename}.#{i+1}")
557
+ end
558
+ end
559
+ @dev.close
560
+ File.rename("#{@filename}", "#{@filename}.0")
561
+ @dev = create_logfile(@filename)
562
+ return true
563
+ end
564
+
565
+ def shift_log_period(now)
566
+ postfix = previous_period_end(now).strftime("%Y%m%d") # YYYYMMDD
567
+ age_file = "#{@filename}.#{postfix}"
568
+ if FileTest.exist?(age_file)
569
+ raise RuntimeError.new("'#{ age_file }' already exists.")
570
+ end
571
+ @dev.close
572
+ File.rename("#{@filename}", age_file)
573
+ @dev = create_logfile(@filename)
574
+ return true
575
+ end
576
+
577
+ def previous_period_end(now)
578
+ case @shift_age
579
+ when /^daily$/
580
+ eod(now - 1 * SiD)
581
+ when /^weekly$/
582
+ eod(now - ((now.wday + 1) * SiD))
583
+ when /^monthly$/
584
+ eod(now - now.mday * SiD)
585
+ else
586
+ now
587
+ end
588
+ end
589
+
590
+ def eod(t)
591
+ Time.mktime(t.year, t.month, t.mday, 23, 59, 59)
592
+ end
593
+ end
594
+
595
+
596
+ #
597
+ # == Description
598
+ #
599
+ # Application -- Add logging support to your application.
600
+ #
601
+ # == Usage
602
+ #
603
+ # 1. Define your application class as a sub-class of this class.
604
+ # 2. Override 'run' method in your class to do many things.
605
+ # 3. Instantiate it and invoke 'start'.
606
+ #
607
+ # == Example
608
+ #
609
+ # class FooApp < Application
610
+ # def initialize(foo_app, application_specific, arguments)
611
+ # super('FooApp') # Name of the application.
612
+ # end
613
+ #
614
+ # def run
615
+ # ...
616
+ # log(WARN, 'warning', 'my_method1')
617
+ # ...
618
+ # @log.error('my_method2') { 'Error!' }
619
+ # ...
620
+ # end
621
+ # end
622
+ #
623
+ # status = FooApp.new(....).start
624
+ #
625
+ class Application
626
+ include Logger::Severity
627
+
628
+ attr_reader :appname
629
+ attr_reader :logdev
630
+
631
+ #
632
+ # == Synopsis
633
+ #
634
+ # Application.new(appname = '')
635
+ #
636
+ # == Args
637
+ #
638
+ # +appname+:: Name of the application.
639
+ #
640
+ # == Description
641
+ #
642
+ # Create an instance. Log device is +STDERR+ by default. This can be
643
+ # changed with #set_log.
644
+ #
645
+ def initialize(appname = nil)
646
+ @appname = appname
647
+ @log = Logger.new(STDERR)
648
+ @log.progname = @appname
649
+ @level = @log.level
650
+ end
651
+
652
+ #
653
+ # Start the application. Return the status code.
654
+ #
655
+ def start
656
+ status = -1
657
+ begin
658
+ log(INFO, "Start of #{ @appname }.")
659
+ status = run
660
+ rescue
661
+ log(FATAL, "Detected an exception. Stopping ... #{$!} (#{$!.class})\n" << $@.join("\n"))
662
+ ensure
663
+ log(INFO, "End of #{ @appname }. (status: #{ status.to_s })")
664
+ end
665
+ status
666
+ end
667
+
668
+ #
669
+ # Sets the log device for this application. See the class Logger for an
670
+ # explanation of the arguments.
671
+ #
672
+ def set_log(logdev, shift_age = 0, shift_size = 1024000)
673
+ @log = Logger.new(logdev, shift_age, shift_size)
674
+ @log.progname = @appname
675
+ @log.level = @level
676
+ end
677
+
678
+ def log=(logdev)
679
+ set_log(logdev)
680
+ end
681
+
682
+ #
683
+ # Set the logging threshold, just like <tt>Logger#level=</tt>.
684
+ #
685
+ def level=(level)
686
+ @level = level
687
+ @log.level = @level
688
+ end
689
+
690
+ #
691
+ # See Logger#add. This application's +appname+ is used.
692
+ #
693
+ def log(severity, message = nil, &block)
694
+ @log.add(severity, message, @appname, &block) if @log
695
+ end
696
+
697
+ private
698
+
699
+ def run
700
+ raise RuntimeError.new('Method run must be defined in the derived class.')
701
+ end
702
+ end
703
+ end