lgrgic_palindrome_detector 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +7 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +31 -0
- data/README.md +39 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lgrgic_palindrome_detector.gemspec +37 -0
- data/lib/lgrgic_palindrome_detector.rb +16 -0
- data/lib/lgrgic_palindrome_detector/version.rb +3 -0
- data/vendor/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/bin/rake +27 -0
- data/vendor/cache/builder-3.2.3.gem +0 -0
- data/vendor/cache/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/cache/builder-3.2.3.gem +0 -0
- data/vendor/cache/cache/minitest-5.11.3.gem +0 -0
- data/vendor/cache/cache/minitest-reporters-1.2.0.gem +0 -0
- data/vendor/cache/cache/rake-10.5.0.gem +0 -0
- data/vendor/cache/cache/ruby-progressbar-1.10.0.gem +0 -0
- data/vendor/cache/gems/ansi-1.5.0/.index +77 -0
- data/vendor/cache/gems/ansi-1.5.0/.yardopts +8 -0
- data/vendor/cache/gems/ansi-1.5.0/DEMO.md +451 -0
- data/vendor/cache/gems/ansi-1.5.0/HISTORY.md +217 -0
- data/vendor/cache/gems/ansi-1.5.0/LICENSE.txt +23 -0
- data/vendor/cache/gems/ansi-1.5.0/NOTICE.md +170 -0
- data/vendor/cache/gems/ansi-1.5.0/README.md +91 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/02_core.md +11 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/03_logger.md +30 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/06_string.md +56 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/07_columns.md +89 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/08_table.md +28 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/09_diff.md +47 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi.rb +22 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi.yml +77 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
- data/vendor/cache/gems/ansi-1.5.0/test/test_helper.rb +3 -0
- data/vendor/cache/gems/builder-3.2.3/CHANGES +107 -0
- data/vendor/cache/gems/builder-3.2.3/MIT-LICENSE +20 -0
- data/vendor/cache/gems/builder-3.2.3/README.md +258 -0
- data/vendor/cache/gems/builder-3.2.3/Rakefile +195 -0
- data/vendor/cache/gems/builder-3.2.3/doc/jamis.rb +591 -0
- data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-1.2.4.rdoc +31 -0
- data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.0.0.rdoc +46 -0
- data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.1.1.rdoc +58 -0
- data/vendor/cache/gems/builder-3.2.3/lib/blankslate.rb +137 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder.rb +13 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/blankslate.rb +23 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/version.rb +8 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xchar.rb +197 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlbase.rb +199 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlevents.rb +63 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlmarkup.rb +339 -0
- data/vendor/cache/gems/builder-3.2.3/rakelib/publish.rake +20 -0
- data/vendor/cache/gems/builder-3.2.3/rakelib/tags.rake +62 -0
- data/vendor/cache/gems/builder-3.2.3/rakelib/testing.rake +7 -0
- data/vendor/cache/gems/builder-3.2.3/test/helper.rb +12 -0
- data/vendor/cache/gems/builder-3.2.3/test/performance.rb +41 -0
- data/vendor/cache/gems/builder-3.2.3/test/preload.rb +39 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_blankslate.rb +213 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_eventbuilder.rb +150 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_markupbuilder.rb +611 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_method_caching.rb +62 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_namecollision.rb +39 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_xchar.rb +78 -0
- data/vendor/cache/gems/minitest-5.11.3/.autotest +34 -0
- data/vendor/cache/gems/minitest-5.11.3/History.rdoc +1310 -0
- data/vendor/cache/gems/minitest-5.11.3/Manifest.txt +26 -0
- data/vendor/cache/gems/minitest-5.11.3/README.rdoc +746 -0
- data/vendor/cache/gems/minitest-5.11.3/Rakefile +86 -0
- data/vendor/cache/gems/minitest-5.11.3/design_rationale.rb +52 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/hoe/minitest.rb +32 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest.rb +987 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/assertions.rb +693 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/autorun.rb +13 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/benchmark.rb +455 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/expectations.rb +284 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/hell.rb +11 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/mock.rb +240 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/parallel.rb +70 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride.rb +4 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride_plugin.rb +142 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/spec.rb +331 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/test.rb +220 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/unit.rb +45 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/metametameta.rb +102 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_mock.rb +874 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_reporter.rb +299 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_spec.rb +987 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_test.rb +2142 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.gitignore +27 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.ruby-gemset +1 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.travis.yml +10 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.yardopts +6 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/CHANGELOG.md +40 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/Gemfile +2 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/LICENSE +20 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/README.md +115 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/Rakefile +60 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/default-reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/mean_time_reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/progress-reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/spec-reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/extensible_backtrace_filter.rb +67 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/minitest_reporter_plugin.rb +75 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/old_activesupport_fix.rb +24 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/relative_position.rb +26 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters.rb +89 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ansi.rb +31 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/base_reporter.rb +117 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/default_reporter.rb +228 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/html_reporter.rb +221 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/junit_reporter.rb +157 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/mean_time_reporter.rb +392 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/progress_reporter.rb +96 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/rubymine_reporter.rb +117 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/spec_reporter.rb +61 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/version.rb +5 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/templates/index.html.erb +83 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/minitest-reporters.gemspec +31 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/junit_filename_bug_example_test.rb +21 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/mean_time_test.rb +8 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_detailed_skip_test.rb +8 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_test.rb +8 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/sample_test.rb +15 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/spec_test.rb +13 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/bad_test.rb +25 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/good_test.rb +14 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/junit_reporter_test.rb +12 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/mean_time_reporter_test.rb +7 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/progress_reporter_test.rb +34 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/test_helper.rb +22 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/reporters_test.rb +52 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/spec_reporter_test.rb +41 -0
- data/vendor/cache/gems/rake-10.5.0/.autotest +7 -0
- data/vendor/cache/gems/rake-10.5.0/.rubocop.yml +27 -0
- data/vendor/cache/gems/rake-10.5.0/.togglerc +7 -0
- data/vendor/cache/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
- data/vendor/cache/gems/rake-10.5.0/History.rdoc +659 -0
- data/vendor/cache/gems/rake-10.5.0/MIT-LICENSE +21 -0
- data/vendor/cache/gems/rake-10.5.0/Manifest.txt +166 -0
- data/vendor/cache/gems/rake-10.5.0/README.rdoc +139 -0
- data/vendor/cache/gems/rake-10.5.0/Rakefile +81 -0
- data/vendor/cache/gems/rake-10.5.0/bin/rake +33 -0
- data/vendor/cache/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/a.c +6 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/b.c +6 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/main.c +11 -0
- data/vendor/cache/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
- data/vendor/cache/gems/rake-10.5.0/doc/jamis.rb +591 -0
- data/vendor/cache/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
- data/vendor/cache/gems/rake-10.5.0/doc/rake.1 +141 -0
- data/vendor/cache/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
- data/vendor/cache/gems/rake-10.5.0/doc/rational.rdoc +151 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake.rb +79 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/application.rb +790 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task.rb +383 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/version.rb +7 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
- data/vendor/cache/gems/rake-10.5.0/rakelib/publish.rake +20 -0
- data/vendor/cache/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
- data/vendor/cache/gems/rake-10.5.0/test/file_creation.rb +34 -0
- data/vendor/cache/gems/rake-10.5.0/test/helper.rb +129 -0
- data/vendor/cache/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
- data/vendor/cache/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake.rb +40 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/LICENSE.txt +19 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/README.md +38 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/Rakefile +2 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar.rb +18 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/base.rb +183 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/length.rb +100 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components.rb +5 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/bar.rb +102 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/percentage.rb +29 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/rate.rb +43 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/time.rb +107 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/title.rb +13 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format.rb +3 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/formatter.rb +27 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/molecule.rb +60 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/string.rb +36 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/output.rb +68 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/null.rb +33 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/progress.rb +118 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements.rb +1 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/throttle.rb +25 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/time.rb +32 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/timer.rb +72 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/version.rb +3 -0
- data/vendor/cache/minitest-5.11.3.gem +0 -0
- data/vendor/cache/minitest-reporters-1.2.0.gem +0 -0
- data/vendor/cache/rake-10.5.0.gem +0 -0
- data/vendor/cache/ruby-progressbar-1.10.0.gem +0 -0
- data/vendor/cache/specifications/ansi-1.5.0.gemspec +49 -0
- data/vendor/cache/specifications/builder-3.2.3.gemspec +21 -0
- data/vendor/cache/specifications/minitest-5.11.3.gemspec +39 -0
- data/vendor/cache/specifications/minitest-reporters-1.2.0.gemspec +49 -0
- data/vendor/cache/specifications/rake-10.5.0.gemspec +43 -0
- data/vendor/cache/specifications/ruby-progressbar-1.10.0.gemspec +46 -0
- metadata +460 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rake/task.rb'
|
2
|
+
require 'rake/early_time'
|
3
|
+
|
4
|
+
module Rake
|
5
|
+
|
6
|
+
# A FileTask is a task that includes time based dependencies. If any of a
|
7
|
+
# FileTask's prerequisites have a timestamp that is later than the file
|
8
|
+
# represented by this task, then the file must be rebuilt (using the
|
9
|
+
# supplied actions).
|
10
|
+
#
|
11
|
+
class FileTask < Task
|
12
|
+
|
13
|
+
# Is this file task needed? Yes if it doesn't exist, or if its time stamp
|
14
|
+
# is out of date.
|
15
|
+
def needed?
|
16
|
+
! File.exist?(name) || out_of_date?(timestamp) || @application.options.build_all
|
17
|
+
end
|
18
|
+
|
19
|
+
# Time stamp for file task.
|
20
|
+
def timestamp
|
21
|
+
if File.exist?(name)
|
22
|
+
File.mtime(name.to_s)
|
23
|
+
else
|
24
|
+
Rake::LATE
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# Are there any prerequisites with a later time than the given time stamp?
|
31
|
+
def out_of_date?(stamp)
|
32
|
+
@prerequisites.any? { |n| application[n, @scope].timestamp > stamp }
|
33
|
+
end
|
34
|
+
|
35
|
+
# ----------------------------------------------------------------
|
36
|
+
# Task class methods.
|
37
|
+
#
|
38
|
+
class << self
|
39
|
+
# Apply the scope to the task name according to the rules for this kind
|
40
|
+
# of task. File based tasks ignore the scope when creating the name.
|
41
|
+
def scope_name(scope, task_name)
|
42
|
+
Rake.from_pathname(task_name)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
#--
|
5
|
+
# This a FileUtils extension that defines several additional commands to be
|
6
|
+
# added to the FileUtils utility functions.
|
7
|
+
module FileUtils
|
8
|
+
# Path to the currently running Ruby program
|
9
|
+
RUBY = ENV['RUBY'] || File.join(
|
10
|
+
RbConfig::CONFIG['bindir'],
|
11
|
+
RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT']).
|
12
|
+
sub(/.*\s.*/m, '"\&"')
|
13
|
+
|
14
|
+
OPT_TABLE['sh'] = %w(noop verbose)
|
15
|
+
OPT_TABLE['ruby'] = %w(noop verbose)
|
16
|
+
|
17
|
+
# Run the system command +cmd+. If multiple arguments are given the command
|
18
|
+
# is run directly (without the shell, same semantics as Kernel::exec and
|
19
|
+
# Kernel::system).
|
20
|
+
#
|
21
|
+
# It is recommended you use the multiple argument form over interpolating
|
22
|
+
# user input for both usability and security reasons. With the multiple
|
23
|
+
# argument form you can easily process files with spaces or other shell
|
24
|
+
# reserved characters in them. With the multiple argument form your rake
|
25
|
+
# tasks are not vulnerable to users providing an argument like
|
26
|
+
# <code>; rm # -rf /</code>.
|
27
|
+
#
|
28
|
+
# If a block is given, upon command completion the block is called with an
|
29
|
+
# OK flag (true on a zero exit status) and a Process::Status object.
|
30
|
+
# Without a block a RuntimeError is raised when the command exits non-zero.
|
31
|
+
#
|
32
|
+
# Examples:
|
33
|
+
#
|
34
|
+
# sh 'ls -ltr'
|
35
|
+
#
|
36
|
+
# sh 'ls', 'file with spaces'
|
37
|
+
#
|
38
|
+
# # check exit status after command runs
|
39
|
+
# sh %{grep pattern file} do |ok, res|
|
40
|
+
# if ! ok
|
41
|
+
# puts "pattern not found (status = #{res.exitstatus})"
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
def sh(*cmd, &block)
|
46
|
+
options = (Hash === cmd.last) ? cmd.pop : {}
|
47
|
+
shell_runner = block_given? ? block : create_shell_runner(cmd)
|
48
|
+
set_verbose_option(options)
|
49
|
+
options[:noop] ||= Rake::FileUtilsExt.nowrite_flag
|
50
|
+
Rake.rake_check_options options, :noop, :verbose
|
51
|
+
Rake.rake_output_message cmd.join(" ") if options[:verbose]
|
52
|
+
|
53
|
+
unless options[:noop]
|
54
|
+
res = rake_system(*cmd)
|
55
|
+
status = $?
|
56
|
+
status = Rake::PseudoStatus.new(1) if !res && status.nil?
|
57
|
+
shell_runner.call(res, status)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def create_shell_runner(cmd) # :nodoc:
|
62
|
+
show_command = cmd.join(" ")
|
63
|
+
show_command = show_command[0, 42] + "..." unless $trace
|
64
|
+
lambda do |ok, status|
|
65
|
+
ok or
|
66
|
+
fail "Command failed with status (#{status.exitstatus}): " +
|
67
|
+
"[#{show_command}]"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
private :create_shell_runner
|
71
|
+
|
72
|
+
def set_verbose_option(options) # :nodoc:
|
73
|
+
unless options.key? :verbose
|
74
|
+
options[:verbose] =
|
75
|
+
(Rake::FileUtilsExt.verbose_flag == Rake::FileUtilsExt::DEFAULT) ||
|
76
|
+
Rake::FileUtilsExt.verbose_flag
|
77
|
+
end
|
78
|
+
end
|
79
|
+
private :set_verbose_option
|
80
|
+
|
81
|
+
def rake_system(*cmd) # :nodoc:
|
82
|
+
Rake::AltSystem.system(*cmd)
|
83
|
+
end
|
84
|
+
private :rake_system
|
85
|
+
|
86
|
+
# Run a Ruby interpreter with the given arguments.
|
87
|
+
#
|
88
|
+
# Example:
|
89
|
+
# ruby %{-pe '$_.upcase!' <README}
|
90
|
+
#
|
91
|
+
def ruby(*args, &block)
|
92
|
+
options = (Hash === args.last) ? args.pop : {}
|
93
|
+
if args.length > 1
|
94
|
+
sh(*([RUBY] + args + [options]), &block)
|
95
|
+
else
|
96
|
+
sh("#{RUBY} #{args.first}", options, &block)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
LN_SUPPORTED = [true]
|
101
|
+
|
102
|
+
# Attempt to do a normal file link, but fall back to a copy if the link
|
103
|
+
# fails.
|
104
|
+
def safe_ln(*args)
|
105
|
+
if ! LN_SUPPORTED[0]
|
106
|
+
cp(*args)
|
107
|
+
else
|
108
|
+
begin
|
109
|
+
ln(*args)
|
110
|
+
rescue StandardError, NotImplementedError
|
111
|
+
LN_SUPPORTED[0] = false
|
112
|
+
cp(*args)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
# Split a file path into individual directory names.
|
118
|
+
#
|
119
|
+
# Example:
|
120
|
+
# split_all("a/b/c") => ['a', 'b', 'c']
|
121
|
+
#
|
122
|
+
def split_all(path)
|
123
|
+
head, tail = File.split(path)
|
124
|
+
return [tail] if head == '.' || tail == '/'
|
125
|
+
return [head, tail] if head == '/'
|
126
|
+
return split_all(head) + [tail]
|
127
|
+
end
|
128
|
+
end
|
@@ -0,0 +1,144 @@
|
|
1
|
+
require 'rake/file_utils'
|
2
|
+
|
3
|
+
module Rake
|
4
|
+
#
|
5
|
+
# FileUtilsExt provides a custom version of the FileUtils methods
|
6
|
+
# that respond to the <tt>verbose</tt> and <tt>nowrite</tt>
|
7
|
+
# commands.
|
8
|
+
#
|
9
|
+
module FileUtilsExt
|
10
|
+
include FileUtils
|
11
|
+
|
12
|
+
class << self
|
13
|
+
attr_accessor :verbose_flag, :nowrite_flag
|
14
|
+
end
|
15
|
+
|
16
|
+
DEFAULT = Object.new
|
17
|
+
|
18
|
+
FileUtilsExt.verbose_flag = DEFAULT
|
19
|
+
FileUtilsExt.nowrite_flag = false
|
20
|
+
|
21
|
+
FileUtils.commands.each do |name|
|
22
|
+
opts = FileUtils.options_of name
|
23
|
+
default_options = []
|
24
|
+
if opts.include?("verbose")
|
25
|
+
default_options << ':verbose => FileUtilsExt.verbose_flag'
|
26
|
+
end
|
27
|
+
if opts.include?("noop")
|
28
|
+
default_options << ':noop => FileUtilsExt.nowrite_flag'
|
29
|
+
end
|
30
|
+
|
31
|
+
next if default_options.empty?
|
32
|
+
module_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
33
|
+
def #{name}( *args, &block )
|
34
|
+
super(
|
35
|
+
*rake_merge_option(args,
|
36
|
+
#{default_options.join(', ')}
|
37
|
+
), &block)
|
38
|
+
end
|
39
|
+
EOS
|
40
|
+
end
|
41
|
+
|
42
|
+
# Get/set the verbose flag controlling output from the FileUtils
|
43
|
+
# utilities. If verbose is true, then the utility method is
|
44
|
+
# echoed to standard output.
|
45
|
+
#
|
46
|
+
# Examples:
|
47
|
+
# verbose # return the current value of the
|
48
|
+
# # verbose flag
|
49
|
+
# verbose(v) # set the verbose flag to _v_.
|
50
|
+
# verbose(v) { code } # Execute code with the verbose flag set
|
51
|
+
# # temporarily to _v_. Return to the
|
52
|
+
# # original value when code is done.
|
53
|
+
def verbose(value=nil)
|
54
|
+
oldvalue = FileUtilsExt.verbose_flag
|
55
|
+
FileUtilsExt.verbose_flag = value unless value.nil?
|
56
|
+
if block_given?
|
57
|
+
begin
|
58
|
+
yield
|
59
|
+
ensure
|
60
|
+
FileUtilsExt.verbose_flag = oldvalue
|
61
|
+
end
|
62
|
+
end
|
63
|
+
FileUtilsExt.verbose_flag
|
64
|
+
end
|
65
|
+
|
66
|
+
# Get/set the nowrite flag controlling output from the FileUtils
|
67
|
+
# utilities. If verbose is true, then the utility method is
|
68
|
+
# echoed to standard output.
|
69
|
+
#
|
70
|
+
# Examples:
|
71
|
+
# nowrite # return the current value of the
|
72
|
+
# # nowrite flag
|
73
|
+
# nowrite(v) # set the nowrite flag to _v_.
|
74
|
+
# nowrite(v) { code } # Execute code with the nowrite flag set
|
75
|
+
# # temporarily to _v_. Return to the
|
76
|
+
# # original value when code is done.
|
77
|
+
def nowrite(value=nil)
|
78
|
+
oldvalue = FileUtilsExt.nowrite_flag
|
79
|
+
FileUtilsExt.nowrite_flag = value unless value.nil?
|
80
|
+
if block_given?
|
81
|
+
begin
|
82
|
+
yield
|
83
|
+
ensure
|
84
|
+
FileUtilsExt.nowrite_flag = oldvalue
|
85
|
+
end
|
86
|
+
end
|
87
|
+
oldvalue
|
88
|
+
end
|
89
|
+
|
90
|
+
# Use this function to prevent potentially destructive ruby code
|
91
|
+
# from running when the :nowrite flag is set.
|
92
|
+
#
|
93
|
+
# Example:
|
94
|
+
#
|
95
|
+
# when_writing("Building Project") do
|
96
|
+
# project.build
|
97
|
+
# end
|
98
|
+
#
|
99
|
+
# The following code will build the project under normal
|
100
|
+
# conditions. If the nowrite(true) flag is set, then the example
|
101
|
+
# will print:
|
102
|
+
#
|
103
|
+
# DRYRUN: Building Project
|
104
|
+
#
|
105
|
+
# instead of actually building the project.
|
106
|
+
#
|
107
|
+
def when_writing(msg=nil)
|
108
|
+
if FileUtilsExt.nowrite_flag
|
109
|
+
$stderr.puts "DRYRUN: #{msg}" if msg
|
110
|
+
else
|
111
|
+
yield
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Merge the given options with the default values.
|
116
|
+
def rake_merge_option(args, defaults)
|
117
|
+
if Hash === args.last
|
118
|
+
defaults.update(args.last)
|
119
|
+
args.pop
|
120
|
+
end
|
121
|
+
args.push defaults
|
122
|
+
args
|
123
|
+
end
|
124
|
+
|
125
|
+
# Send the message to the default rake output (which is $stderr).
|
126
|
+
def rake_output_message(message)
|
127
|
+
$stderr.puts(message)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Check that the options do not contain options not listed in
|
131
|
+
# +optdecl+. An ArgumentError exception is thrown if non-declared
|
132
|
+
# options are found.
|
133
|
+
def rake_check_options(options, *optdecl)
|
134
|
+
h = options.dup
|
135
|
+
optdecl.each do |name|
|
136
|
+
h.delete name
|
137
|
+
end
|
138
|
+
raise ArgumentError, "no such option: #{h.keys.join(' ')}" unless
|
139
|
+
h.empty?
|
140
|
+
end
|
141
|
+
|
142
|
+
extend self
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Rake
|
2
|
+
|
3
|
+
# InvocationChain tracks the chain of task invocations to detect
|
4
|
+
# circular dependencies.
|
5
|
+
class InvocationChain < LinkedList
|
6
|
+
|
7
|
+
# Is the invocation already in the chain?
|
8
|
+
def member?(invocation)
|
9
|
+
head == invocation || tail.member?(invocation)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Append an invocation to the chain of invocations. It is an error
|
13
|
+
# if the invocation already listed.
|
14
|
+
def append(invocation)
|
15
|
+
if member?(invocation)
|
16
|
+
fail RuntimeError, "Circular dependency detected: #{to_s} => #{invocation}"
|
17
|
+
end
|
18
|
+
conj(invocation)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Convert to string, ie: TOP => invocation => invocation
|
22
|
+
def to_s
|
23
|
+
"#{prefix}#{head}"
|
24
|
+
end
|
25
|
+
|
26
|
+
# Class level append.
|
27
|
+
def self.append(invocation, chain)
|
28
|
+
chain.append(invocation)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def prefix
|
34
|
+
"#{tail} => "
|
35
|
+
end
|
36
|
+
|
37
|
+
# Null object for an empty chain.
|
38
|
+
class EmptyInvocationChain < LinkedList::EmptyLinkedList
|
39
|
+
@parent = InvocationChain
|
40
|
+
|
41
|
+
def member?(obj)
|
42
|
+
false
|
43
|
+
end
|
44
|
+
|
45
|
+
def append(invocation)
|
46
|
+
conj(invocation)
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_s
|
50
|
+
"TOP"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
EMPTY = EmptyInvocationChain.new
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Rake
|
2
|
+
module InvocationExceptionMixin
|
3
|
+
# Return the invocation chain (list of Rake tasks) that were in
|
4
|
+
# effect when this exception was detected by rake. May be null if
|
5
|
+
# no tasks were active.
|
6
|
+
def chain
|
7
|
+
@rake_invocation_chain ||= nil
|
8
|
+
end
|
9
|
+
|
10
|
+
# Set the invocation chain in effect when this exception was
|
11
|
+
# detected.
|
12
|
+
def chain=(value)
|
13
|
+
@rake_invocation_chain = value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Rake
|
2
|
+
# LateTime is a fake timestamp that occurs _after_ any other time value.
|
3
|
+
class LateTime
|
4
|
+
include Comparable
|
5
|
+
include Singleton
|
6
|
+
|
7
|
+
def <=>(other)
|
8
|
+
1
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
'<LATE TIME>'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
LATE = LateTime.instance
|
17
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module Rake
|
2
|
+
|
3
|
+
# Polylithic linked list structure used to implement several data
|
4
|
+
# structures in Rake.
|
5
|
+
class LinkedList
|
6
|
+
include Enumerable
|
7
|
+
|
8
|
+
attr_reader :head, :tail
|
9
|
+
|
10
|
+
def initialize(head, tail=EMPTY)
|
11
|
+
@head = head
|
12
|
+
@tail = tail
|
13
|
+
end
|
14
|
+
|
15
|
+
# Polymorphically add a new element to the head of a list. The
|
16
|
+
# type of head node will be the same list type as the tail.
|
17
|
+
def conj(item)
|
18
|
+
self.class.cons(item, self)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Is the list empty?
|
22
|
+
def empty?
|
23
|
+
false
|
24
|
+
end
|
25
|
+
|
26
|
+
# Lists are structurally equivalent.
|
27
|
+
def ==(other)
|
28
|
+
current = self
|
29
|
+
while ! current.empty? && ! other.empty?
|
30
|
+
return false if current.head != other.head
|
31
|
+
current = current.tail
|
32
|
+
other = other.tail
|
33
|
+
end
|
34
|
+
current.empty? && other.empty?
|
35
|
+
end
|
36
|
+
|
37
|
+
# Convert to string: LL(item, item...)
|
38
|
+
def to_s
|
39
|
+
items = map { |item| item.to_s }.join(", ")
|
40
|
+
"LL(#{items})"
|
41
|
+
end
|
42
|
+
|
43
|
+
# Same as +to_s+, but with inspected items.
|
44
|
+
def inspect
|
45
|
+
items = map { |item| item.inspect }.join(", ")
|
46
|
+
"LL(#{items})"
|
47
|
+
end
|
48
|
+
|
49
|
+
# For each item in the list.
|
50
|
+
def each
|
51
|
+
current = self
|
52
|
+
while ! current.empty?
|
53
|
+
yield(current.head)
|
54
|
+
current = current.tail
|
55
|
+
end
|
56
|
+
self
|
57
|
+
end
|
58
|
+
|
59
|
+
# Make a list out of the given arguments. This method is
|
60
|
+
# polymorphic
|
61
|
+
def self.make(*args)
|
62
|
+
result = empty
|
63
|
+
args.reverse_each do |item|
|
64
|
+
result = cons(item, result)
|
65
|
+
end
|
66
|
+
result
|
67
|
+
end
|
68
|
+
|
69
|
+
# Cons a new head onto the tail list.
|
70
|
+
def self.cons(head, tail)
|
71
|
+
new(head, tail)
|
72
|
+
end
|
73
|
+
|
74
|
+
# The standard empty list class for the given LinkedList class.
|
75
|
+
def self.empty
|
76
|
+
self::EMPTY
|
77
|
+
end
|
78
|
+
|
79
|
+
# Represent an empty list, using the Null Object Pattern.
|
80
|
+
#
|
81
|
+
# When inheriting from the LinkedList class, you should implement
|
82
|
+
# a type specific Empty class as well. Make sure you set the class
|
83
|
+
# instance variable @parent to the associated list class (this
|
84
|
+
# allows conj, cons and make to work polymorphically).
|
85
|
+
class EmptyLinkedList < LinkedList
|
86
|
+
@parent = LinkedList
|
87
|
+
|
88
|
+
def initialize
|
89
|
+
end
|
90
|
+
|
91
|
+
def empty?
|
92
|
+
true
|
93
|
+
end
|
94
|
+
|
95
|
+
def self.cons(head, tail)
|
96
|
+
@parent.cons(head, tail)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
EMPTY = EmptyLinkedList.new
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|