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.
- data/.gitignore +18 -0
- data/.rvmrc +1 -0
- data/Gemfile +6 -0
- data/LICENSE +22 -0
- data/README.md +66 -0
- data/Rakefile +1 -0
- data/lib/ruby_on_ruby.rb +5 -0
- data/lib/ruby_on_ruby/console.rb +7 -0
- data/lib/ruby_on_ruby/context.rb +33 -0
- data/lib/ruby_on_ruby/file_loader.rb +31 -0
- data/lib/ruby_on_ruby/ruby_stream.rb +27 -0
- data/lib/ruby_on_ruby/version.rb +3 -0
- data/lib/rubyonruby.rb +1 -0
- data/ruby_in_ruby.gemspec +19 -0
- data/vendor/javascripts/emscripted-ruby/lib/.document +106 -0
- data/vendor/javascripts/emscripted-ruby/lib/English.rb +155 -0
- data/vendor/javascripts/emscripted-ruby/lib/Env.rb +18 -0
- data/vendor/javascripts/emscripted-ruby/lib/README +96 -0
- data/vendor/javascripts/emscripted-ruby/lib/abbrev.rb +103 -0
- data/vendor/javascripts/emscripted-ruby/lib/base64.rb +133 -0
- data/vendor/javascripts/emscripted-ruby/lib/benchmark.rb +572 -0
- data/vendor/javascripts/emscripted-ruby/lib/cgi-lib.rb +272 -0
- data/vendor/javascripts/emscripted-ruby/lib/cgi.rb +2308 -0
- data/vendor/javascripts/emscripted-ruby/lib/cgi/.document +2 -0
- data/vendor/javascripts/emscripted-ruby/lib/cgi/session.rb +498 -0
- data/vendor/javascripts/emscripted-ruby/lib/cgi/session/pstore.rb +111 -0
- data/vendor/javascripts/emscripted-ruby/lib/complex.rb +663 -0
- data/vendor/javascripts/emscripted-ruby/lib/csv.rb +992 -0
- data/vendor/javascripts/emscripted-ruby/lib/date.rb +1767 -0
- data/vendor/javascripts/emscripted-ruby/lib/date/format.rb +1190 -0
- data/vendor/javascripts/emscripted-ruby/lib/date2.rb +5 -0
- data/vendor/javascripts/emscripted-ruby/lib/debug.rb +947 -0
- data/vendor/javascripts/emscripted-ruby/lib/delegate.rb +337 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb.rb +2 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/acl.rb +146 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/drb.rb +1782 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/eq.rb +16 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/extserv.rb +64 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/extservm.rb +89 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/gw.rb +122 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/invokemethod.rb +36 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/observer.rb +22 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/ssl.rb +190 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/timeridconv.rb +91 -0
- data/vendor/javascripts/emscripted-ruby/lib/drb/unix.rb +108 -0
- data/vendor/javascripts/emscripted-ruby/lib/e2mmap.rb +195 -0
- data/vendor/javascripts/emscripted-ruby/lib/erb.rb +880 -0
- data/vendor/javascripts/emscripted-ruby/lib/eregex.rb +37 -0
- data/vendor/javascripts/emscripted-ruby/lib/fileutils.rb +1591 -0
- data/vendor/javascripts/emscripted-ruby/lib/finalize.rb +193 -0
- data/vendor/javascripts/emscripted-ruby/lib/find.rb +79 -0
- data/vendor/javascripts/emscripted-ruby/lib/forwardable.rb +218 -0
- data/vendor/javascripts/emscripted-ruby/lib/ftools.rb +261 -0
- data/vendor/javascripts/emscripted-ruby/lib/generator.rb +418 -0
- data/vendor/javascripts/emscripted-ruby/lib/getoptlong.rb +621 -0
- data/vendor/javascripts/emscripted-ruby/lib/getopts.rb +127 -0
- data/vendor/javascripts/emscripted-ruby/lib/gserver.rb +253 -0
- data/vendor/javascripts/emscripted-ruby/lib/importenv.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/ipaddr.rb +814 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb.rb +346 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/chws.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/fork.rb +39 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/help.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/load.rb +67 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/nop.rb +39 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/pushws.rb +39 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/subirb.rb +43 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/completion.rb +205 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/context.rb +255 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/change-ws.rb +62 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/history.rb +110 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/loader.rb +120 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/math-mode.rb +37 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/multi-irb.rb +241 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/save-history.rb +85 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/tracer.rb +61 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/use-loader.rb +65 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ext/workspaces.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/extend-command.rb +264 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/frame.rb +67 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/help.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/init.rb +259 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/input-method.rb +120 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/lc/error.rb +30 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/lc/help-message +35 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/error.rb +27 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/help-message +36 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/locale.rb +184 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/notifier.rb +145 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/output-method.rb +85 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-lex.rb +1149 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-token.rb +273 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/slex.rb +285 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/version.rb +16 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/workspace.rb +107 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/ws-for-case-2.rb +15 -0
- data/vendor/javascripts/emscripted-ruby/lib/irb/xmp.rb +86 -0
- data/vendor/javascripts/emscripted-ruby/lib/jcode.rb +220 -0
- data/vendor/javascripts/emscripted-ruby/lib/logger.rb +703 -0
- data/vendor/javascripts/emscripted-ruby/lib/mailread.rb +62 -0
- data/vendor/javascripts/emscripted-ruby/lib/mathn.rb +308 -0
- data/vendor/javascripts/emscripted-ruby/lib/matrix.rb +1278 -0
- data/vendor/javascripts/emscripted-ruby/lib/mkmf.rb +1811 -0
- data/vendor/javascripts/emscripted-ruby/lib/monitor.rb +352 -0
- data/vendor/javascripts/emscripted-ruby/lib/mutex_m.rb +122 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/ftp.rb +927 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/http.rb +2277 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/https.rb +173 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/imap.rb +3371 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/pop.rb +999 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/protocol.rb +392 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/smtp.rb +1014 -0
- data/vendor/javascripts/emscripted-ruby/lib/net/telnet.rb +756 -0
- data/vendor/javascripts/emscripted-ruby/lib/observer.rb +192 -0
- data/vendor/javascripts/emscripted-ruby/lib/open-uri.rb +678 -0
- data/vendor/javascripts/emscripted-ruby/lib/open3.rb +101 -0
- data/vendor/javascripts/emscripted-ruby/lib/optparse.rb +1790 -0
- data/vendor/javascripts/emscripted-ruby/lib/optparse/date.rb +17 -0
- data/vendor/javascripts/emscripted-ruby/lib/optparse/shellwords.rb +6 -0
- data/vendor/javascripts/emscripted-ruby/lib/optparse/time.rb +10 -0
- data/vendor/javascripts/emscripted-ruby/lib/optparse/uri.rb +6 -0
- data/vendor/javascripts/emscripted-ruby/lib/optparse/version.rb +70 -0
- data/vendor/javascripts/emscripted-ruby/lib/ostruct.rb +146 -0
- data/vendor/javascripts/emscripted-ruby/lib/parsearg.rb +87 -0
- data/vendor/javascripts/emscripted-ruby/lib/parsedate.rb +53 -0
- data/vendor/javascripts/emscripted-ruby/lib/pathname.rb +1062 -0
- data/vendor/javascripts/emscripted-ruby/lib/ping.rb +64 -0
- data/vendor/javascripts/emscripted-ruby/lib/pp.rb +654 -0
- data/vendor/javascripts/emscripted-ruby/lib/prettyprint.rb +896 -0
- data/vendor/javascripts/emscripted-ruby/lib/profile.rb +6 -0
- data/vendor/javascripts/emscripted-ruby/lib/profiler.rb +59 -0
- data/vendor/javascripts/emscripted-ruby/lib/pstore.rb +395 -0
- data/vendor/javascripts/emscripted-ruby/lib/racc/parser.rb +442 -0
- data/vendor/javascripts/emscripted-ruby/lib/rational.rb +564 -0
- data/vendor/javascripts/emscripted-ruby/lib/readbytes.rb +41 -0
- data/vendor/javascripts/emscripted-ruby/lib/resolv-replace.rb +62 -0
- data/vendor/javascripts/emscripted-ruby/lib/resolv.rb +2210 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/attlistdecl.rb +62 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/attribute.rb +185 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/cdata.rb +67 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/child.rb +96 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/comment.rb +80 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/doctype.rb +271 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/document.rb +208 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/attlistdecl.rb +10 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/dtd.rb +51 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/elementdecl.rb +17 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/entitydecl.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/notationdecl.rb +39 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/element.rb +1227 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encoding.rb +71 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/CP-1252.rb +103 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/EUC-JP.rb +35 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ICONV.rb +22 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-1.rb +7 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-15.rb +72 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT-JIS.rb +37 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT_JIS.rb +1 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UNILE.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/US-ASCII.rb +30 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-16.rb +35 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-8.rb +18 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/entity.rb +165 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/default.rb +109 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/pretty.rb +137 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/transitive.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/functions.rb +382 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/instruction.rb +70 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/light/node.rb +196 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/namespace.rb +47 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/node.rb +75 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/output.rb +24 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parent.rb +166 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parseexception.rb +51 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/baseparser.rb +503 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/lightparser.rb +60 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/pullparser.rb +196 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/sax2parser.rb +238 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/streamparser.rb +46 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/treeparser.rb +97 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/ultralightparser.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/xpathparser.rb +698 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/quickpath.rb +266 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/rexml.rb +32 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/sax2listener.rb +97 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/source.rb +251 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/streamlistener.rb +92 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/syncenumerator.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/text.rb +344 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/undefinednamespaceexception.rb +8 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/relaxng.rb +559 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validation.rb +155 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validationexception.rb +9 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/xmldecl.rb +119 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/xmltokens.rb +18 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath.rb +66 -0
- data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath_parser.rb +792 -0
- data/vendor/javascripts/emscripted-ruby/lib/rinda/rinda.rb +283 -0
- data/vendor/javascripts/emscripted-ruby/lib/rinda/ring.rb +271 -0
- data/vendor/javascripts/emscripted-ruby/lib/rinda/tuplespace.rb +642 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss.rb +19 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/0.9.rb +428 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/1.0.rb +452 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/2.0.rb +111 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/atom.rb +749 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/content.rb +31 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/content/1.0.rb +10 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/content/2.0.rb +12 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/converter.rb +162 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore.rb +161 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/1.0.rb +13 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/2.0.rb +13 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/atom.rb +17 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/image.rb +193 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/itunes.rb +410 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker.rb +44 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/0.9.rb +467 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/1.0.rb +434 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/2.0.rb +223 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/atom.rb +172 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/base.rb +868 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/content.rb +21 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/dublincore.rb +124 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/entry.rb +163 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/feed.rb +429 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/image.rb +111 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/itunes.rb +242 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/slash.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/syndication.rb +18 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/taxonomy.rb +118 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/maker/trackback.rb +61 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/parser.rb +541 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/rexmlparser.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/rss.rb +1312 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/slash.rb +49 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/syndication.rb +67 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/taxonomy.rb +145 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/trackback.rb +288 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/utils.rb +111 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/xml-stylesheet.rb +105 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/xml.rb +71 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/xmlparser.rb +93 -0
- data/vendor/javascripts/emscripted-ruby/lib/rss/xmlscanner.rb +121 -0
- data/vendor/javascripts/emscripted-ruby/lib/rubyunit.rb +6 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/assert.rb +73 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/cui/testrunner.rb +51 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/error.rb +9 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/testcase.rb +45 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/testresult.rb +44 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/testsuite.rb +26 -0
- data/vendor/javascripts/emscripted-ruby/lib/runit/topublic.rb +8 -0
- data/vendor/javascripts/emscripted-ruby/lib/scanf.rb +702 -0
- data/vendor/javascripts/emscripted-ruby/lib/securerandom.rb +137 -0
- data/vendor/javascripts/emscripted-ruby/lib/set.rb +1233 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell.rb +269 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/builtin-command.rb +154 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/command-processor.rb +592 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/error.rb +26 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/filter.rb +110 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/process-controller.rb +260 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/system-command.rb +168 -0
- data/vendor/javascripts/emscripted-ruby/lib/shell/version.rb +16 -0
- data/vendor/javascripts/emscripted-ruby/lib/shellwords.rb +172 -0
- data/vendor/javascripts/emscripted-ruby/lib/singleton.rb +360 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/attachment.rb +107 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/baseData.rb +942 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/element.rb +258 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/aspDotNetHandler.rb +213 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/handler.rb +100 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/literalHandler.rb +226 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/soapHandler.rb +582 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/generator.rb +268 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/header/handler.rb +57 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/header/handlerset.rb +70 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/header/simplehandler.rb +44 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/httpconfigloader.rb +119 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping.rb +10 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/factory.rb +355 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/mapping.rb +381 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/registry.rb +541 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/rubytypeFactory.rb +475 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/typeMap.rb +50 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlencodedregistry.rb +280 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlliteralregistry.rb +418 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/marshal.rb +59 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/mimemessage.rb +240 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/netHttpClient.rb +190 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/parser.rb +251 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/processor.rb +66 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/property.rb +333 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/cgistub.rb +206 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/driver.rb +254 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/element.rb +325 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/httpserver.rb +129 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/proxy.rb +497 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/router.rb +594 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/rpc.rb +25 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/soaplet.rb +162 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/standaloneServer.rb +43 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/soap.rb +140 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/streamHandler.rb +229 -0
- data/vendor/javascripts/emscripted-ruby/lib/soap/wsdlDriver.rb +575 -0
- data/vendor/javascripts/emscripted-ruby/lib/sync.rb +311 -0
- data/vendor/javascripts/emscripted-ruby/lib/tempfile.rb +209 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit.rb +280 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertionfailederror.rb +14 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertions.rb +622 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/autorunner.rb +220 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector.rb +43 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/dir.rb +107 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/objectspace.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/error.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/failure.rb +51 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/testcase.rb +160 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/testresult.rb +80 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/testsuite.rb +76 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/console/testrunner.rb +127 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/fox/testrunner.rb +268 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk/testrunner.rb +416 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk2/testrunner.rb +465 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnermediator.rb +68 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnerutilities.rb +46 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/tk/testrunner.rb +260 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/backtracefilter.rb +40 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/observable.rb +90 -0
- data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/procwrapper.rb +48 -0
- data/vendor/javascripts/emscripted-ruby/lib/thread.rb +479 -0
- data/vendor/javascripts/emscripted-ruby/lib/thwait.rb +169 -0
- data/vendor/javascripts/emscripted-ruby/lib/time.rb +797 -0
- data/vendor/javascripts/emscripted-ruby/lib/timeout.rb +122 -0
- data/vendor/javascripts/emscripted-ruby/lib/tmpdir.rb +130 -0
- data/vendor/javascripts/emscripted-ruby/lib/tracer.rb +167 -0
- data/vendor/javascripts/emscripted-ruby/lib/tsort.rb +290 -0
- data/vendor/javascripts/emscripted-ruby/lib/un.rb +235 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri.rb +29 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/common.rb +611 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/ftp.rb +198 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/generic.rb +1122 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/http.rb +100 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/https.rb +20 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/ldap.rb +190 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/ldaps.rb +12 -0
- data/vendor/javascripts/emscripted-ruby/lib/uri/mailto.rb +266 -0
- data/vendor/javascripts/emscripted-ruby/lib/weakref.rb +100 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick.rb +29 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/accesslog.rb +67 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/cgi.rb +257 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/compat.rb +15 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/config.rb +97 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/cookie.rb +110 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/htmlutils.rb +25 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth.rb +45 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/authenticator.rb +79 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/basicauth.rb +65 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/digestauth.rb +343 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htdigest.rb +91 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htgroup.rb +61 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htpasswd.rb +83 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/userdb.rb +29 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpproxy.rb +254 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httprequest.rb +365 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpresponse.rb +327 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/https.rb +63 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpserver.rb +210 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet.rb +22 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/abstract.rb +71 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgi_runner.rb +47 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgihandler.rb +108 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/erbhandler.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/filehandler.rb +435 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/prochandler.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpstatus.rb +126 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httputils.rb +399 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/httpversion.rb +49 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/log.rb +88 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/server.rb +200 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/ssl.rb +126 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/utils.rb +100 -0
- data/vendor/javascripts/emscripted-ruby/lib/webrick/version.rb +13 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/binding.rb +65 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/data.rb +64 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/definitions.rb +250 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/documentation.rb +32 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/import.rb +80 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/importer.rb +38 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/info.rb +39 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/message.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/operation.rb +130 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/operationBinding.rb +108 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/param.rb +85 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/parser.rb +163 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/part.rb +52 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/port.rb +84 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/portType.rb +73 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/service.rb +61 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/address.rb +40 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/binding.rb +49 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/body.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/cgiStubCreator.rb +76 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreator.rb +314 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreatorSupport.rb +126 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/clientSkeltonCreator.rb +78 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/complexType.rb +161 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/data.rb +42 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/definitions.rb +149 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/driverCreator.rb +95 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/element.rb +28 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/fault.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/header.rb +86 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/headerfault.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/mappingRegistryCreator.rb +92 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/methodDefCreator.rb +228 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/operation.rb +122 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/servantSkeltonCreator.rb +67 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/standaloneServerStubCreator.rb +85 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/wsdl2ruby.rb +176 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/types.rb +43 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/wsdl.rb +23 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/all.rb +69 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/annotation.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/any.rb +56 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/attribute.rb +127 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/choice.rb +69 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexContent.rb +92 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexType.rb +139 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/content.rb +96 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/data.rb +80 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/element.rb +154 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/enumeration.rb +36 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/import.rb +65 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/importer.rb +87 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/include.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/length.rb +35 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/parser.rb +166 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/pattern.rb +36 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/schema.rb +143 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/sequence.rb +69 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleContent.rb +65 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleRestriction.rb +73 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleType.rb +73 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/unique.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/.document +1 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/README.txt +31 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/base64.rb +81 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/client.rb +624 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/config.rb +40 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/create.rb +290 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/datetime.rb +142 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/httpserver.rb +178 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/marshal.rb +76 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/parser.rb +813 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/server.rb +780 -0
- data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/utils.rb +165 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/charset.rb +187 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen.rb +12 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/classdef.rb +203 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/commentdef.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/gensupport.rb +166 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/methoddef.rb +63 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/moduledef.rb +191 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes.rb +1269 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes1999.rb +20 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/iconvcharset.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/mapping.rb +42 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/namedelements.rb +95 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/ns.rb +140 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/qname.rb +78 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser.rb +61 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/parser.rb +96 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/rexmlparser.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlparser.rb +50 -0
- data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlscanner.rb +147 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml.rb +440 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/baseemitter.rb +247 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/basenode.rb +216 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/constants.rb +45 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/dbm.rb +111 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/encoding.rb +33 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/error.rb +34 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/loader.rb +14 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/rubytypes.rb +408 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/store.rb +43 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/stream.rb +40 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/stringio.rb +83 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/syck.rb +19 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/tag.rb +91 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/types.rb +192 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/yamlnode.rb +54 -0
- data/vendor/javascripts/emscripted-ruby/lib/yaml/ypath.rb +52 -0
- data/vendor/javascripts/emscripted-ruby/ruby.closure.js +7201 -0
- metadata +554 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
#
|
|
2
|
+
# = ftools.rb: Extra tools for the File class
|
|
3
|
+
#
|
|
4
|
+
# Author:: WATANABE, Hirofumi
|
|
5
|
+
# Documentation:: Zachary Landau
|
|
6
|
+
#
|
|
7
|
+
# This library can be distributed under the terms of the Ruby license.
|
|
8
|
+
# You can freely distribute/modify this library.
|
|
9
|
+
#
|
|
10
|
+
# It is included in the Ruby standard library.
|
|
11
|
+
#
|
|
12
|
+
# == Description
|
|
13
|
+
#
|
|
14
|
+
# ftools adds several (class, not instance) methods to the File class, for
|
|
15
|
+
# copying, moving, deleting, installing, and comparing files, as well as
|
|
16
|
+
# creating a directory path. See the File class for details.
|
|
17
|
+
#
|
|
18
|
+
# FileUtils contains all or nearly all the same functionality and more, and
|
|
19
|
+
# is a recommended option over ftools
|
|
20
|
+
#
|
|
21
|
+
# When you
|
|
22
|
+
#
|
|
23
|
+
# require 'ftools'
|
|
24
|
+
#
|
|
25
|
+
# then the File class aquires some utility methods for copying, moving, and
|
|
26
|
+
# deleting files, and more.
|
|
27
|
+
#
|
|
28
|
+
# See the method descriptions below, and consider using FileUtils as it is
|
|
29
|
+
# more comprehensive.
|
|
30
|
+
#
|
|
31
|
+
class File
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class << File
|
|
35
|
+
|
|
36
|
+
BUFSIZE = 8 * 1024
|
|
37
|
+
|
|
38
|
+
#
|
|
39
|
+
# If +to+ is a valid directory, +from+ will be appended to +to+, adding
|
|
40
|
+
# and escaping backslashes as necessary. Otherwise, +to+ will be returned.
|
|
41
|
+
# Useful for appending +from+ to +to+ only if the filename was not specified
|
|
42
|
+
# in +to+.
|
|
43
|
+
#
|
|
44
|
+
def catname(from, to)
|
|
45
|
+
if directory? to
|
|
46
|
+
join to.sub(%r([/\\]$), ''), basename(from)
|
|
47
|
+
else
|
|
48
|
+
to
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
#
|
|
53
|
+
# Copies a file +from+ to +to+. If +to+ is a directory, copies +from+
|
|
54
|
+
# to <tt>to/from</tt>.
|
|
55
|
+
#
|
|
56
|
+
def syscopy(from, to)
|
|
57
|
+
to = catname(from, to)
|
|
58
|
+
|
|
59
|
+
fmode = stat(from).mode
|
|
60
|
+
tpath = to
|
|
61
|
+
not_exist = !exist?(tpath)
|
|
62
|
+
|
|
63
|
+
from = open(from, "rb")
|
|
64
|
+
to = open(to, "wb")
|
|
65
|
+
|
|
66
|
+
begin
|
|
67
|
+
while true
|
|
68
|
+
to.syswrite from.sysread(BUFSIZE)
|
|
69
|
+
end
|
|
70
|
+
rescue EOFError
|
|
71
|
+
ret = true
|
|
72
|
+
rescue
|
|
73
|
+
ret = false
|
|
74
|
+
ensure
|
|
75
|
+
to.close
|
|
76
|
+
from.close
|
|
77
|
+
end
|
|
78
|
+
chmod(fmode, tpath) if not_exist
|
|
79
|
+
ret
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
#
|
|
83
|
+
# Copies a file +from+ to +to+ using #syscopy. If +to+ is a directory,
|
|
84
|
+
# copies +from+ to <tt>to/from</tt>. If +verbose+ is true, <tt>from -> to</tt>
|
|
85
|
+
# is printed.
|
|
86
|
+
#
|
|
87
|
+
def copy(from, to, verbose = false)
|
|
88
|
+
$stderr.print from, " -> ", catname(from, to), "\n" if verbose
|
|
89
|
+
syscopy from, to
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
alias cp copy
|
|
93
|
+
|
|
94
|
+
#
|
|
95
|
+
# Moves a file +from+ to +to+ using #syscopy. If +to+ is a directory,
|
|
96
|
+
# copies from +from+ to <tt>to/from</tt>. If +verbose+ is true, <tt>from ->
|
|
97
|
+
# to</tt> is printed.
|
|
98
|
+
#
|
|
99
|
+
def move(from, to, verbose = false)
|
|
100
|
+
to = catname(from, to)
|
|
101
|
+
$stderr.print from, " -> ", to, "\n" if verbose
|
|
102
|
+
|
|
103
|
+
if RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ and file? to
|
|
104
|
+
unlink to
|
|
105
|
+
end
|
|
106
|
+
fstat = stat(from)
|
|
107
|
+
begin
|
|
108
|
+
rename from, to
|
|
109
|
+
rescue
|
|
110
|
+
begin
|
|
111
|
+
symlink readlink(from), to and unlink from
|
|
112
|
+
rescue
|
|
113
|
+
from_stat = stat(from)
|
|
114
|
+
syscopy from, to and unlink from
|
|
115
|
+
utime(from_stat.atime, from_stat.mtime, to)
|
|
116
|
+
begin
|
|
117
|
+
chown(fstat.uid, fstat.gid, to)
|
|
118
|
+
rescue
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
alias mv move
|
|
125
|
+
|
|
126
|
+
#
|
|
127
|
+
# Returns +true+ if and only if the contents of files +from+ and +to+ are
|
|
128
|
+
# identical. If +verbose+ is +true+, <tt>from <=> to</tt> is printed.
|
|
129
|
+
#
|
|
130
|
+
def compare(from, to, verbose = false)
|
|
131
|
+
$stderr.print from, " <=> ", to, "\n" if verbose
|
|
132
|
+
|
|
133
|
+
return false if stat(from).size != stat(to).size
|
|
134
|
+
|
|
135
|
+
from = open(from, "rb")
|
|
136
|
+
to = open(to, "rb")
|
|
137
|
+
|
|
138
|
+
ret = false
|
|
139
|
+
fr = tr = ''
|
|
140
|
+
|
|
141
|
+
begin
|
|
142
|
+
while fr == tr
|
|
143
|
+
fr = from.read(BUFSIZE)
|
|
144
|
+
if fr
|
|
145
|
+
tr = to.read(fr.size)
|
|
146
|
+
else
|
|
147
|
+
ret = to.read(BUFSIZE)
|
|
148
|
+
ret = !ret || ret.length == 0
|
|
149
|
+
break
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
rescue
|
|
153
|
+
ret = false
|
|
154
|
+
ensure
|
|
155
|
+
to.close
|
|
156
|
+
from.close
|
|
157
|
+
end
|
|
158
|
+
ret
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
alias cmp compare
|
|
162
|
+
|
|
163
|
+
#
|
|
164
|
+
# Removes a list of files. Each parameter should be the name of the file to
|
|
165
|
+
# delete. If the last parameter isn't a String, verbose mode will be enabled.
|
|
166
|
+
# Returns the number of files deleted.
|
|
167
|
+
#
|
|
168
|
+
def safe_unlink(*files)
|
|
169
|
+
verbose = if files[-1].is_a? String then false else files.pop end
|
|
170
|
+
files.each do |file|
|
|
171
|
+
begin
|
|
172
|
+
unlink file
|
|
173
|
+
$stderr.print "removing ", file, "\n" if verbose
|
|
174
|
+
rescue Errno::EACCES # for Windows
|
|
175
|
+
continue if symlink? file
|
|
176
|
+
begin
|
|
177
|
+
mode = stat(file).mode
|
|
178
|
+
o_chmod mode | 0200, file
|
|
179
|
+
unlink file
|
|
180
|
+
$stderr.print "removing ", file, "\n" if verbose
|
|
181
|
+
rescue
|
|
182
|
+
o_chmod mode, file rescue nil
|
|
183
|
+
end
|
|
184
|
+
rescue
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
alias rm_f safe_unlink
|
|
190
|
+
|
|
191
|
+
#
|
|
192
|
+
# Creates a directory and all its parent directories.
|
|
193
|
+
# For example,
|
|
194
|
+
#
|
|
195
|
+
# File.makedirs '/usr/lib/ruby'
|
|
196
|
+
#
|
|
197
|
+
# causes the following directories to be made, if they do not exist.
|
|
198
|
+
# * /usr
|
|
199
|
+
# * /usr/lib
|
|
200
|
+
# * /usr/lib/ruby
|
|
201
|
+
#
|
|
202
|
+
# You can pass several directories, each as a parameter. If the last
|
|
203
|
+
# parameter isn't a String, verbose mode will be enabled.
|
|
204
|
+
#
|
|
205
|
+
def makedirs(*dirs)
|
|
206
|
+
verbose = if dirs[-1].is_a? String then false else dirs.pop end
|
|
207
|
+
mode = 0755
|
|
208
|
+
for dir in dirs
|
|
209
|
+
parent = dirname(dir)
|
|
210
|
+
next if parent == dir or directory? dir
|
|
211
|
+
makedirs parent unless directory? parent
|
|
212
|
+
$stderr.print "mkdir ", dir, "\n" if verbose
|
|
213
|
+
if basename(dir) != ""
|
|
214
|
+
begin
|
|
215
|
+
Dir.mkdir dir, mode
|
|
216
|
+
rescue SystemCallError
|
|
217
|
+
raise unless directory? dir
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
end
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
alias mkpath makedirs
|
|
224
|
+
|
|
225
|
+
alias o_chmod chmod
|
|
226
|
+
|
|
227
|
+
vsave, $VERBOSE = $VERBOSE, false
|
|
228
|
+
|
|
229
|
+
#
|
|
230
|
+
# Changes permission bits on +files+ to the bit pattern represented
|
|
231
|
+
# by +mode+. If the last parameter isn't a String, verbose mode will
|
|
232
|
+
# be enabled.
|
|
233
|
+
#
|
|
234
|
+
# File.chmod 0755, 'somecommand'
|
|
235
|
+
# File.chmod 0644, 'my.rb', 'your.rb', true
|
|
236
|
+
#
|
|
237
|
+
def chmod(mode, *files)
|
|
238
|
+
verbose = if files[-1].is_a? String then false else files.pop end
|
|
239
|
+
$stderr.printf "chmod %04o %s\n", mode, files.join(" ") if verbose
|
|
240
|
+
o_chmod mode, *files
|
|
241
|
+
end
|
|
242
|
+
$VERBOSE = vsave
|
|
243
|
+
|
|
244
|
+
#
|
|
245
|
+
# If +src+ is not the same as +dest+, copies it and changes the permission
|
|
246
|
+
# mode to +mode+. If +dest+ is a directory, destination is <tt>dest/src</tt>.
|
|
247
|
+
# If +mode+ is not set, default is used. If +verbose+ is set to true, the
|
|
248
|
+
# name of each file copied will be printed.
|
|
249
|
+
#
|
|
250
|
+
def install(from, to, mode = nil, verbose = false)
|
|
251
|
+
to = catname(from, to)
|
|
252
|
+
unless exist? to and cmp from, to
|
|
253
|
+
safe_unlink to if exist? to
|
|
254
|
+
cp from, to, verbose
|
|
255
|
+
chmod mode, to, verbose if mode
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# vi:set sw=2:
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#--
|
|
3
|
+
# $Idaemons: /home/cvs/rb/generator.rb,v 1.8 2001/10/03 08:54:32 knu Exp $
|
|
4
|
+
# $RoughId: generator.rb,v 1.10 2003/10/14 19:36:58 knu Exp $
|
|
5
|
+
# $Id: generator.rb 15954 2008-04-10 10:52:50Z knu $
|
|
6
|
+
#++
|
|
7
|
+
#
|
|
8
|
+
# = generator.rb: convert an internal iterator to an external one
|
|
9
|
+
#
|
|
10
|
+
# Copyright (c) 2001,2003 Akinori MUSHA <knu@iDaemons.org>
|
|
11
|
+
#
|
|
12
|
+
# All rights reserved. You can redistribute and/or modify it under
|
|
13
|
+
# the same terms as Ruby.
|
|
14
|
+
#
|
|
15
|
+
# == Overview
|
|
16
|
+
#
|
|
17
|
+
# This library provides the Generator class, which converts an
|
|
18
|
+
# internal iterator (i.e. an Enumerable object) to an external
|
|
19
|
+
# iterator. In that form, you can roll many iterators independently.
|
|
20
|
+
#
|
|
21
|
+
# The SyncEnumerator class, which is implemented using Generator,
|
|
22
|
+
# makes it easy to roll many Enumerable objects synchronously.
|
|
23
|
+
#
|
|
24
|
+
# See the respective classes for examples of usage.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
#
|
|
28
|
+
# Generator converts an internal iterator (i.e. an Enumerable object)
|
|
29
|
+
# to an external iterator.
|
|
30
|
+
#
|
|
31
|
+
# Note that it is not very fast since it is implemented using
|
|
32
|
+
# continuations, which are currently slow.
|
|
33
|
+
#
|
|
34
|
+
# == Example
|
|
35
|
+
#
|
|
36
|
+
# require 'generator'
|
|
37
|
+
#
|
|
38
|
+
# # Generator from an Enumerable object
|
|
39
|
+
# g = Generator.new(['A', 'B', 'C', 'Z'])
|
|
40
|
+
#
|
|
41
|
+
# while g.next?
|
|
42
|
+
# puts g.next
|
|
43
|
+
# end
|
|
44
|
+
#
|
|
45
|
+
# # Generator from a block
|
|
46
|
+
# g = Generator.new { |g|
|
|
47
|
+
# for i in 'A'..'C'
|
|
48
|
+
# g.yield i
|
|
49
|
+
# end
|
|
50
|
+
#
|
|
51
|
+
# g.yield 'Z'
|
|
52
|
+
# }
|
|
53
|
+
#
|
|
54
|
+
# # The same result as above
|
|
55
|
+
# while g.next?
|
|
56
|
+
# puts g.next
|
|
57
|
+
# end
|
|
58
|
+
#
|
|
59
|
+
class Generator
|
|
60
|
+
include Enumerable
|
|
61
|
+
|
|
62
|
+
# Creates a new generator either from an Enumerable object or from a
|
|
63
|
+
# block.
|
|
64
|
+
#
|
|
65
|
+
# In the former, block is ignored even if given.
|
|
66
|
+
#
|
|
67
|
+
# In the latter, the given block is called with the generator
|
|
68
|
+
# itself, and expected to call the +yield+ method for each element.
|
|
69
|
+
def initialize(enum = nil, &block)
|
|
70
|
+
if enum
|
|
71
|
+
@block = proc { |g|
|
|
72
|
+
enum.each { |x| g.yield x }
|
|
73
|
+
}
|
|
74
|
+
else
|
|
75
|
+
@block = block
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
@index = 0
|
|
79
|
+
@queue = []
|
|
80
|
+
@cont_next = @cont_yield = @cont_endp = nil
|
|
81
|
+
|
|
82
|
+
if @cont_next = callcc { |c| c }
|
|
83
|
+
@block.call(self)
|
|
84
|
+
|
|
85
|
+
@cont_endp.call(nil) if @cont_endp
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
self
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Yields an element to the generator.
|
|
92
|
+
def yield(value)
|
|
93
|
+
if @cont_yield = callcc { |c| c }
|
|
94
|
+
@queue << value
|
|
95
|
+
@cont_next.call(nil)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
self
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Returns true if the generator has reached the end.
|
|
102
|
+
def end?()
|
|
103
|
+
if @cont_endp = callcc { |c| c }
|
|
104
|
+
@cont_yield.nil? && @queue.empty?
|
|
105
|
+
else
|
|
106
|
+
@queue.empty?
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Returns true if the generator has not reached the end yet.
|
|
111
|
+
def next?()
|
|
112
|
+
!end?
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Returns the current index (position) counting from zero.
|
|
116
|
+
def index()
|
|
117
|
+
@index
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Returns the current index (position) counting from zero.
|
|
121
|
+
def pos()
|
|
122
|
+
@index
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Returns the element at the current position and moves forward.
|
|
126
|
+
def next()
|
|
127
|
+
if end?
|
|
128
|
+
raise EOFError, "no more elements available"
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
if @cont_next = callcc { |c| c }
|
|
132
|
+
@cont_yield.call(nil) if @cont_yield
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
@index += 1
|
|
136
|
+
|
|
137
|
+
@queue.shift
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Returns the element at the current position.
|
|
141
|
+
def current()
|
|
142
|
+
if @queue.empty?
|
|
143
|
+
raise EOFError, "no more elements available"
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
@queue.first
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Rewinds the generator.
|
|
150
|
+
def rewind()
|
|
151
|
+
initialize(nil, &@block) if @index.nonzero?
|
|
152
|
+
|
|
153
|
+
self
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Rewinds the generator and enumerates the elements.
|
|
157
|
+
def each
|
|
158
|
+
rewind
|
|
159
|
+
|
|
160
|
+
until end?
|
|
161
|
+
yield self.next
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
self
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
class Enumerable::Enumerator
|
|
169
|
+
def __generator
|
|
170
|
+
@generator ||= Generator.new(self)
|
|
171
|
+
end
|
|
172
|
+
private :__generator
|
|
173
|
+
|
|
174
|
+
# call-seq:
|
|
175
|
+
# e.next => object
|
|
176
|
+
#
|
|
177
|
+
# Returns the next object in the enumerator, and move the internal
|
|
178
|
+
# position forward. When the position reached at the end, internal
|
|
179
|
+
# position is rewinded then StopIteration is raised.
|
|
180
|
+
#
|
|
181
|
+
# Note that enumeration sequence by next method does not affect other
|
|
182
|
+
# non-external enumeration methods, unless underlying iteration
|
|
183
|
+
# methods itself has side-effect, e.g. IO#each_line.
|
|
184
|
+
#
|
|
185
|
+
# Caution: This feature internally uses Generator, which uses callcc
|
|
186
|
+
# to stop and resume enumeration to fetch each value. Use with care
|
|
187
|
+
# and be aware of the performance loss.
|
|
188
|
+
def next
|
|
189
|
+
g = __generator
|
|
190
|
+
return g.next unless g.end?
|
|
191
|
+
|
|
192
|
+
g.rewind
|
|
193
|
+
raise StopIteration, 'iteration reached at end'
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
# call-seq:
|
|
197
|
+
# e.rewind => e
|
|
198
|
+
#
|
|
199
|
+
# Rewinds the enumeration sequence by the next method.
|
|
200
|
+
def rewind
|
|
201
|
+
__generator.rewind
|
|
202
|
+
self
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
#
|
|
207
|
+
# SyncEnumerator creates an Enumerable object from multiple Enumerable
|
|
208
|
+
# objects and enumerates them synchronously.
|
|
209
|
+
#
|
|
210
|
+
# == Example
|
|
211
|
+
#
|
|
212
|
+
# require 'generator'
|
|
213
|
+
#
|
|
214
|
+
# s = SyncEnumerator.new([1,2,3], ['a', 'b', 'c'])
|
|
215
|
+
#
|
|
216
|
+
# # Yields [1, 'a'], [2, 'b'], and [3,'c']
|
|
217
|
+
# s.each { |row| puts row.join(', ') }
|
|
218
|
+
#
|
|
219
|
+
class SyncEnumerator
|
|
220
|
+
include Enumerable
|
|
221
|
+
|
|
222
|
+
# Creates a new SyncEnumerator which enumerates rows of given
|
|
223
|
+
# Enumerable objects.
|
|
224
|
+
def initialize(*enums)
|
|
225
|
+
@gens = enums.map { |e| Generator.new(e) }
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# Returns the number of enumerated Enumerable objects, i.e. the size
|
|
229
|
+
# of each row.
|
|
230
|
+
def size
|
|
231
|
+
@gens.size
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# Returns the number of enumerated Enumerable objects, i.e. the size
|
|
235
|
+
# of each row.
|
|
236
|
+
def length
|
|
237
|
+
@gens.length
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
# Returns true if the given nth Enumerable object has reached the
|
|
241
|
+
# end. If no argument is given, returns true if any of the
|
|
242
|
+
# Enumerable objects has reached the end.
|
|
243
|
+
def end?(i = nil)
|
|
244
|
+
if i.nil?
|
|
245
|
+
@gens.detect { |g| g.end? } ? true : false
|
|
246
|
+
else
|
|
247
|
+
@gens[i].end?
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# Enumerates rows of the Enumerable objects.
|
|
252
|
+
def each
|
|
253
|
+
@gens.each { |g| g.rewind }
|
|
254
|
+
|
|
255
|
+
loop do
|
|
256
|
+
count = 0
|
|
257
|
+
|
|
258
|
+
ret = @gens.map { |g|
|
|
259
|
+
if g.end?
|
|
260
|
+
count += 1
|
|
261
|
+
nil
|
|
262
|
+
else
|
|
263
|
+
g.next
|
|
264
|
+
end
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if count == @gens.size
|
|
268
|
+
break
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
yield ret
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
self
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
if $0 == __FILE__
|
|
279
|
+
eval DATA.read, nil, $0, __LINE__+4
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
__END__
|
|
283
|
+
|
|
284
|
+
require 'test/unit'
|
|
285
|
+
|
|
286
|
+
class TC_Generator < Test::Unit::TestCase
|
|
287
|
+
def test_block1
|
|
288
|
+
g = Generator.new { |g|
|
|
289
|
+
# no yield's
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
assert_equal(0, g.pos)
|
|
293
|
+
assert_raises(EOFError) { g.current }
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
def test_block2
|
|
297
|
+
g = Generator.new { |g|
|
|
298
|
+
for i in 'A'..'C'
|
|
299
|
+
g.yield i
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
g.yield 'Z'
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
assert_equal(0, g.pos)
|
|
306
|
+
assert_equal('A', g.current)
|
|
307
|
+
|
|
308
|
+
assert_equal(true, g.next?)
|
|
309
|
+
assert_equal(0, g.pos)
|
|
310
|
+
assert_equal('A', g.current)
|
|
311
|
+
assert_equal(0, g.pos)
|
|
312
|
+
assert_equal('A', g.next)
|
|
313
|
+
|
|
314
|
+
assert_equal(1, g.pos)
|
|
315
|
+
assert_equal(true, g.next?)
|
|
316
|
+
assert_equal(1, g.pos)
|
|
317
|
+
assert_equal('B', g.current)
|
|
318
|
+
assert_equal(1, g.pos)
|
|
319
|
+
assert_equal('B', g.next)
|
|
320
|
+
|
|
321
|
+
assert_equal(g, g.rewind)
|
|
322
|
+
|
|
323
|
+
assert_equal(0, g.pos)
|
|
324
|
+
assert_equal('A', g.current)
|
|
325
|
+
|
|
326
|
+
assert_equal(true, g.next?)
|
|
327
|
+
assert_equal(0, g.pos)
|
|
328
|
+
assert_equal('A', g.current)
|
|
329
|
+
assert_equal(0, g.pos)
|
|
330
|
+
assert_equal('A', g.next)
|
|
331
|
+
|
|
332
|
+
assert_equal(1, g.pos)
|
|
333
|
+
assert_equal(true, g.next?)
|
|
334
|
+
assert_equal(1, g.pos)
|
|
335
|
+
assert_equal('B', g.current)
|
|
336
|
+
assert_equal(1, g.pos)
|
|
337
|
+
assert_equal('B', g.next)
|
|
338
|
+
|
|
339
|
+
assert_equal(2, g.pos)
|
|
340
|
+
assert_equal(true, g.next?)
|
|
341
|
+
assert_equal(2, g.pos)
|
|
342
|
+
assert_equal('C', g.current)
|
|
343
|
+
assert_equal(2, g.pos)
|
|
344
|
+
assert_equal('C', g.next)
|
|
345
|
+
|
|
346
|
+
assert_equal(3, g.pos)
|
|
347
|
+
assert_equal(true, g.next?)
|
|
348
|
+
assert_equal(3, g.pos)
|
|
349
|
+
assert_equal('Z', g.current)
|
|
350
|
+
assert_equal(3, g.pos)
|
|
351
|
+
assert_equal('Z', g.next)
|
|
352
|
+
|
|
353
|
+
assert_equal(4, g.pos)
|
|
354
|
+
assert_equal(false, g.next?)
|
|
355
|
+
assert_raises(EOFError) { g.next }
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
def test_each
|
|
359
|
+
a = [5, 6, 7, 8, 9]
|
|
360
|
+
|
|
361
|
+
g = Generator.new(a)
|
|
362
|
+
|
|
363
|
+
i = 0
|
|
364
|
+
|
|
365
|
+
g.each { |x|
|
|
366
|
+
assert_equal(a[i], x)
|
|
367
|
+
|
|
368
|
+
i += 1
|
|
369
|
+
|
|
370
|
+
break if i == 3
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
assert_equal(3, i)
|
|
374
|
+
|
|
375
|
+
i = 0
|
|
376
|
+
|
|
377
|
+
g.each { |x|
|
|
378
|
+
assert_equal(a[i], x)
|
|
379
|
+
|
|
380
|
+
i += 1
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
assert_equal(5, i)
|
|
384
|
+
end
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
class TC_SyncEnumerator < Test::Unit::TestCase
|
|
388
|
+
def test_each
|
|
389
|
+
r = ['a'..'f', 1..10, 10..20]
|
|
390
|
+
ra = r.map { |x| x.to_a }
|
|
391
|
+
|
|
392
|
+
a = (0...(ra.map {|x| x.size}.max)).map { |i| ra.map { |x| x[i] } }
|
|
393
|
+
|
|
394
|
+
s = SyncEnumerator.new(*r)
|
|
395
|
+
|
|
396
|
+
i = 0
|
|
397
|
+
|
|
398
|
+
s.each { |x|
|
|
399
|
+
assert_equal(a[i], x)
|
|
400
|
+
|
|
401
|
+
i += 1
|
|
402
|
+
|
|
403
|
+
break if i == 3
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
assert_equal(3, i)
|
|
407
|
+
|
|
408
|
+
i = 0
|
|
409
|
+
|
|
410
|
+
s.each { |x|
|
|
411
|
+
assert_equal(a[i], x)
|
|
412
|
+
|
|
413
|
+
i += 1
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
assert_equal(a.size, i)
|
|
417
|
+
end
|
|
418
|
+
end
|