ruby_on_ruby 0.0.1

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