win32-api 1.5.3-universal-mingw32 → 1.6.0-universal-mingw32
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 +4 -4
- data/CHANGES +174 -169
- data/Gemfile +4 -0
- data/Gemfile.lock +24 -0
- data/README +129 -131
- data/Rakefile +185 -182
- data/appveyor.yml +42 -0
- data/ext/win32/api.c +1092 -1092
- data/lib/win32/api.rb +14 -8
- data/lib/win32/ruby21_32/win32/api.so +0 -0
- data/lib/win32/ruby21_64/win32/api.so +0 -0
- data/lib/win32/ruby22_32/win32/api.so +0 -0
- data/lib/win32/ruby22_64/win32/api.so +0 -0
- data/lib/win32/ruby23_32/win32/api.so +0 -0
- data/lib/win32/ruby23_64/win32/api.so +0 -0
- data/lib/win32/ruby2_32/win32/api.so +0 -0
- data/lib/win32/ruby2_64/win32/api.so +0 -0
- data/test/test_win32_api.rb +145 -145
- data/vendor/bundle/ruby/2.2.0/bin/devkit +23 -0
- data/vendor/bundle/ruby/2.2.0/bin/devkit.bat +6 -0
- data/vendor/bundle/ruby/2.2.0/bin/rake +23 -0
- data/vendor/bundle/ruby/2.2.0/bin/rake.bat +6 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/CHANGELOG +55 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/LICENSE +339 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/README.md +73 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/Rakefile +8 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/colorize.gemspec +35 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/lib/colorize.rb +12 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/lib/colorize/class_methods.rb +116 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/lib/colorize/instance_methods.rb +135 -0
- data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/test/test_colorize.rb +161 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/Gemfile +4 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/README.md +34 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/Rakefile +1 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/Rspec-example-matchers.txt +184 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/bin/devkit +87 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/devkit.gemspec +27 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit.rb +18 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/core.rb +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/identity.rb +78 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/ssh_identity.rb +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/version.rb +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit/core_spec.rb +46 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit/identity_spec.rb +1 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit/ssh_identity_spec.rb +1 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit_spec.rb +5 -0
- data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/spec_helper.rb +8 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/AUTHORS +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/COPYING +339 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/Changelog.md +415 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/Gemfile +9 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/INSTALL +59 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/LICENSE +7 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/README.rdoc +74 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/Rakefile +30 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/TODO +6 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/ansi_colors.rb +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/asking_for_arrays.rb +18 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/basic_usage.rb +75 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/color_scheme.rb +32 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/get_character.rb +12 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/limit.rb +12 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/menus.rb +65 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/overwrite.rb +19 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/page_and_wrap.rb +322 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/password.rb +7 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/repeat_entry.rb +21 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/trapping_eof.rb +22 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/using_readline.rb +17 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/highline.gemspec +37 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline.rb +1048 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/color_scheme.rb +134 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/compatibility.rb +16 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/import.rb +41 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/menu.rb +381 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/question.rb +480 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/simulate.rb +48 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/style.rb +192 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/version.rb +4 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/setup.rb +1360 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/site/highline.css +65 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/site/images/logo.png +0 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/site/index.html +58 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/string_methods.rb +32 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_color_scheme.rb +96 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_highline.rb +1402 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_import.rb +52 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_menu.rb +439 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_simulator.rb +23 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_string_highline.rb +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_style.rb +578 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/BSDL +22 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/COPYING +57 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/Gemfile +9 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/LEGAL +4 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/README.rdoc +19 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/Rakefile +16 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/benchmarks/bm_yhpg.rb +59 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/benchmarks/helper.rb +8 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/lib/power_assert.rb +338 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/lib/power_assert/enable_tracepoint_events.rb +82 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/lib/power_assert/version.rb +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/power_assert.gemspec +23 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/test/helper.rb +10 -0
- data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/test/test_power_assert.rb +512 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/CONTRIBUTING.rdoc +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/History.rdoc +719 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/Manifest.txt +154 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/README.rdoc +157 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/Rakefile +82 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/bin/rake +33 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/jamis.rb +591 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/rake.1 +141 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/rakefile.rdoc +624 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.6.rdoc +37 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.4.rdoc +60 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.5.rdoc +55 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.6.rdoc +64 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.1.rdoc +58 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.2.rdoc +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake.rb +73 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb +787 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/backtrace.rb +23 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/clean.rb +76 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/cloneable.rb +16 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/contrib/compositepublisher.rb +21 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/contrib/ftptools.rb +137 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/contrib/sshpublisher.rb +60 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/cpu_counter.rb +120 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/default_loader.rb +14 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/dsl_definition.rb +194 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/early_time.rb +21 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_creation_task.rb +24 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_list.rb +436 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_task.rb +46 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_utils.rb +123 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/invocation_chain.rb +56 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/invocation_exception_mixin.rb +16 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/late_time.rb +17 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/linked_list.rb +111 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/loaders/makefile.rb +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/multi_task.rb +13 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/packagetask.rb +199 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/phony.rb +15 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/private_reader.rb +20 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/promise.rb +99 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/pseudo_status.rb +29 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rake_module.rb +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rake_test_loader.rb +22 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/scope.rb +42 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task.rb +391 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task_argument_error.rb +7 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task_arguments.rb +102 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task_manager.rb +316 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/tasklib.rb +11 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/testtask.rb +204 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/thread_history_display.rb +48 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/thread_pool.rb +163 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/trace_output.rb +22 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/version.rb +7 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/win32.rb +50 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/rakelib/test_times.rake +25 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/file_creation.rb +34 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/helper.rb +134 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/support/rakefile_definitions.rb +476 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/support/ruby_runner.rb +34 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_private_reader.rb +42 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake.rb +40 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_application.rb +659 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_application_options.rb +468 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_backtrace.rb +119 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_clean.rb +61 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_cpu_counter.rb +68 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_definitions.rb +84 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_directory_task.rb +76 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_dsl.rb +40 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_early_time.rb +31 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_creation_task.rb +56 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_list.rb +687 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_list_path_map.rb +15 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_task.rb +197 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_utils.rb +318 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_ftp_file.rb +74 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_functional.rb +484 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_invocation_chain.rb +64 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_late_time.rb +18 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_linked_list.rb +84 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_makefile_loader.rb +46 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_multi_task.rb +64 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_name_space.rb +57 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_package_task.rb +79 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_path_map.rb +168 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_path_map_explode.rb +34 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_path_map_partial.rb +18 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_pseudo_status.rb +21 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_rake_test_loader.rb +20 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_reduce_compat.rb +26 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_require.rb +40 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_rules.rb +388 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_scope.rb +44 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task.rb +430 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_argument_parsing.rb +119 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_arguments.rb +134 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_manager.rb +178 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_with_arguments.rb +172 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_test_task.rb +130 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_thread_pool.rb +145 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_top_level_functions.rb +71 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_win32.rb +72 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_thread_history_display.rb +101 -0
- data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_trace_output.rb +52 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/COPYING +64 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/GPL +339 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/LGPL +502 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/PSFL +271 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/README.md +101 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/Rakefile +71 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test-unit.rb +34 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit.rb +505 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/assertion-failed-error.rb +25 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/assertions.rb +2218 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/attribute-matcher.rb +26 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/attribute.rb +158 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/auto-runner-loader.rb +17 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/autorunner.rb +536 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/code-snippet-fetcher.rb +58 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector.rb +73 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/descendant.rb +19 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/dir.rb +108 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/load.rb +202 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/objectspace.rb +34 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/xml.rb +249 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/color-scheme.rb +198 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/color.rb +134 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/data.rb +262 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/diff.rb +746 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/error.rb +158 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/exception-handler.rb +82 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/failure.rb +169 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/fault-location-detector.rb +100 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/fixture.rb +295 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/notification.rb +136 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/omission.rb +195 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/pending.rb +154 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/priority.rb +192 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/runner/console.rb +59 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/runner/emacs.rb +8 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/runner/xml.rb +15 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/test-suite-creator.rb +89 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/testcase.rb +811 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/testresult.rb +132 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/testsuite.rb +175 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/console/outputlevel.rb +15 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/console/testrunner.rb +693 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/emacs/testrunner.rb +49 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/testrunner.rb +53 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/testrunnermediator.rb +114 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/xml/testrunner.rb +224 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/backtracefilter.rb +59 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/observable.rb +90 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/output.rb +31 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/procwrapper.rb +48 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/version.rb +5 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/adder.rb +13 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/subtracter.rb +12 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/test_adder.rb +20 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/test_subtracter.rb +20 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/test_user.rb +23 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test-descendant.rb +178 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test-load.rb +442 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test_dir.rb +406 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test_objectspace.rb +100 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header-label.csv +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header-label.tsv +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header.csv +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header.tsv +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/no-header.csv +2 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/no-header.tsv +2 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/plus.csv +3 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/run-test.rb +22 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-assertions.rb +2160 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-attribute-matcher.rb +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-attribute.rb +123 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-code-snippet.rb +37 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-color-scheme.rb +82 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-color.rb +47 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-data.rb +303 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-diff.rb +518 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-emacs-runner.rb +60 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-error.rb +26 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-failure.rb +33 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-fault-location-detector.rb +163 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-fixture.rb +713 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-notification.rb +33 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-omission.rb +81 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-pending.rb +70 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-priority.rb +173 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-case.rb +1171 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-result.rb +113 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-suite-creator.rb +97 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-suite.rb +150 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/testunit-test-util.rb +31 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/ui/test_testrunmediator.rb +20 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test-method-owner-finder.rb +38 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test-output.rb +11 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test_backtracefilter.rb +52 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test_observable.rb +102 -0
- data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test_procwrapper.rb +36 -0
- data/vendor/bundle/ruby/2.2.0/specifications/colorize-0.7.7.gemspec +38 -0
- data/vendor/bundle/ruby/2.2.0/specifications/devkit-0.1.0.gemspec +46 -0
- data/vendor/bundle/ruby/2.2.0/specifications/highline-1.7.8.gemspec +37 -0
- data/vendor/bundle/ruby/2.2.0/specifications/power_assert-0.3.0.gemspec +41 -0
- data/vendor/bundle/ruby/2.2.0/specifications/rake-11.1.2.gemspec +43 -0
- data/vendor/bundle/ruby/2.2.0/specifications/test-unit-3.1.9.gemspec +47 -0
- data/win32-api.gemspec +27 -27
- metadata +345 -5
- data/lib/win32/ruby18/win32/api.so +0 -0
- data/lib/win32/ruby19/win32/api.so +0 -0
| @@ -0,0 +1,42 @@ | |
| 1 | 
            +
            module Rake
         | 
| 2 | 
            +
              class Scope < LinkedList # :nodoc: all
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                # Path for the scope.
         | 
| 5 | 
            +
                def path
         | 
| 6 | 
            +
                  map { |item| item.to_s }.reverse.join(":")
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                # Path for the scope + the named path.
         | 
| 10 | 
            +
                def path_with_task_name(task_name)
         | 
| 11 | 
            +
                  "#{path}:#{task_name}"
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                # Trim +n+ innermost scope levels from the scope. In no case will
         | 
| 15 | 
            +
                # this trim beyond the toplevel scope.
         | 
| 16 | 
            +
                def trim(n)
         | 
| 17 | 
            +
                  result = self
         | 
| 18 | 
            +
                  while n > 0 && ! result.empty?
         | 
| 19 | 
            +
                    result = result.tail
         | 
| 20 | 
            +
                    n -= 1
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                  result
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                # Scope lists always end with an EmptyScope object. See Null
         | 
| 26 | 
            +
                # Object Pattern)
         | 
| 27 | 
            +
                class EmptyScope < EmptyLinkedList
         | 
| 28 | 
            +
                  @parent = Scope
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  def path
         | 
| 31 | 
            +
                    ""
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  def path_with_task_name(task_name)
         | 
| 35 | 
            +
                    task_name
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                # Singleton null object for an empty scope.
         | 
| 40 | 
            +
                EMPTY = EmptyScope.new
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
            end
         | 
| @@ -0,0 +1,391 @@ | |
| 1 | 
            +
            require 'rake/invocation_exception_mixin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Rake
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              ##
         | 
| 6 | 
            +
              # A Task is the basic unit of work in a Rakefile.  Tasks have associated
         | 
| 7 | 
            +
              # actions (possibly more than one) and a list of prerequisites.  When
         | 
| 8 | 
            +
              # invoked, a task will first ensure that all of its prerequisites have an
         | 
| 9 | 
            +
              # opportunity to run and then it will execute its own actions.
         | 
| 10 | 
            +
              #
         | 
| 11 | 
            +
              # Tasks are not usually created directly using the new method, but rather
         | 
| 12 | 
            +
              # use the +file+ and +task+ convenience methods.
         | 
| 13 | 
            +
              #
         | 
| 14 | 
            +
              class Task
         | 
| 15 | 
            +
                # List of prerequisites for a task.
         | 
| 16 | 
            +
                attr_reader :prerequisites
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                # List of actions attached to a task.
         | 
| 19 | 
            +
                attr_reader :actions
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                # Application owning this task.
         | 
| 22 | 
            +
                attr_accessor :application
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                # Array of nested namespaces names used for task lookup by this task.
         | 
| 25 | 
            +
                attr_reader :scope
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                # File/Line locations of each of the task definitions for this
         | 
| 28 | 
            +
                # task (only valid if the task was defined with the detect
         | 
| 29 | 
            +
                # location option set).
         | 
| 30 | 
            +
                attr_reader :locations
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                # Has this task already been invoked?  Already invoked tasks
         | 
| 33 | 
            +
                # will be skipped unless you reenable them.
         | 
| 34 | 
            +
                attr_reader :already_invoked
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                # Return task name
         | 
| 37 | 
            +
                def to_s
         | 
| 38 | 
            +
                  name
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def inspect # :nodoc:
         | 
| 42 | 
            +
                  "<#{self.class} #{name} => [#{prerequisites.join(', ')}]>"
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                # List of sources for task.
         | 
| 46 | 
            +
                attr_writer :sources
         | 
| 47 | 
            +
                def sources
         | 
| 48 | 
            +
                  if defined?(@sources)
         | 
| 49 | 
            +
                    @sources
         | 
| 50 | 
            +
                  else
         | 
| 51 | 
            +
                    prerequisites
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                # List of prerequisite tasks
         | 
| 56 | 
            +
                def prerequisite_tasks
         | 
| 57 | 
            +
                  prerequisites.map { |pre| lookup_prerequisite(pre) }
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                def lookup_prerequisite(prerequisite_name) # :nodoc:
         | 
| 61 | 
            +
                  scoped_prerequisite_task = application[prerequisite_name, @scope]
         | 
| 62 | 
            +
                  if scoped_prerequisite_task == self
         | 
| 63 | 
            +
                    unscoped_prerequisite_task = application[prerequisite_name]
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
                  unscoped_prerequisite_task || scoped_prerequisite_task
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
                private :lookup_prerequisite
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                # List of all unique prerequisite tasks including prerequisite tasks'
         | 
| 70 | 
            +
                # prerequisites.
         | 
| 71 | 
            +
                # Includes self when cyclic dependencies are found.
         | 
| 72 | 
            +
                def all_prerequisite_tasks
         | 
| 73 | 
            +
                  seen = {}
         | 
| 74 | 
            +
                  collect_prerequisites(seen)
         | 
| 75 | 
            +
                  seen.values
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                def collect_prerequisites(seen) # :nodoc:
         | 
| 79 | 
            +
                  prerequisite_tasks.each do |pre|
         | 
| 80 | 
            +
                    next if seen[pre.name]
         | 
| 81 | 
            +
                    seen[pre.name] = pre
         | 
| 82 | 
            +
                    pre.collect_prerequisites(seen)
         | 
| 83 | 
            +
                  end
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
                protected :collect_prerequisites
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                # First source from a rule (nil if no sources)
         | 
| 88 | 
            +
                def source
         | 
| 89 | 
            +
                  sources.first
         | 
| 90 | 
            +
                end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                # Create a task named +task_name+ with no actions or prerequisites. Use
         | 
| 93 | 
            +
                # +enhance+ to add actions and prerequisites.
         | 
| 94 | 
            +
                def initialize(task_name, app)
         | 
| 95 | 
            +
                  @name            = task_name.to_s
         | 
| 96 | 
            +
                  @prerequisites   = []
         | 
| 97 | 
            +
                  @actions         = []
         | 
| 98 | 
            +
                  @already_invoked = false
         | 
| 99 | 
            +
                  @comments        = []
         | 
| 100 | 
            +
                  @lock            = Monitor.new
         | 
| 101 | 
            +
                  @application     = app
         | 
| 102 | 
            +
                  @scope           = app.current_scope
         | 
| 103 | 
            +
                  @arg_names       = nil
         | 
| 104 | 
            +
                  @locations       = []
         | 
| 105 | 
            +
                end
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                # Enhance a task with prerequisites or actions.  Returns self.
         | 
| 108 | 
            +
                def enhance(deps=nil, &block)
         | 
| 109 | 
            +
                  @prerequisites |= deps if deps
         | 
| 110 | 
            +
                  @actions << block if block_given?
         | 
| 111 | 
            +
                  self
         | 
| 112 | 
            +
                end
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                # Name of the task, including any namespace qualifiers.
         | 
| 115 | 
            +
                def name
         | 
| 116 | 
            +
                  @name.to_s
         | 
| 117 | 
            +
                end
         | 
| 118 | 
            +
             | 
| 119 | 
            +
                # Name of task with argument list description.
         | 
| 120 | 
            +
                def name_with_args # :nodoc:
         | 
| 121 | 
            +
                  if arg_description
         | 
| 122 | 
            +
                    "#{name}#{arg_description}"
         | 
| 123 | 
            +
                  else
         | 
| 124 | 
            +
                    name
         | 
| 125 | 
            +
                  end
         | 
| 126 | 
            +
                end
         | 
| 127 | 
            +
             | 
| 128 | 
            +
                # Argument description (nil if none).
         | 
| 129 | 
            +
                def arg_description # :nodoc:
         | 
| 130 | 
            +
                  @arg_names ? "[#{arg_names.join(',')}]" : nil
         | 
| 131 | 
            +
                end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                # Name of arguments for this task.
         | 
| 134 | 
            +
                def arg_names
         | 
| 135 | 
            +
                  @arg_names || []
         | 
| 136 | 
            +
                end
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                # Reenable the task, allowing its tasks to be executed if the task
         | 
| 139 | 
            +
                # is invoked again.
         | 
| 140 | 
            +
                def reenable
         | 
| 141 | 
            +
                  @already_invoked = false
         | 
| 142 | 
            +
                end
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                # Clear the existing prerequisites and actions of a rake task.
         | 
| 145 | 
            +
                def clear
         | 
| 146 | 
            +
                  clear_prerequisites
         | 
| 147 | 
            +
                  clear_actions
         | 
| 148 | 
            +
                  clear_comments
         | 
| 149 | 
            +
                  self
         | 
| 150 | 
            +
                end
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                # Clear the existing prerequisites of a rake task.
         | 
| 153 | 
            +
                def clear_prerequisites
         | 
| 154 | 
            +
                  prerequisites.clear
         | 
| 155 | 
            +
                  self
         | 
| 156 | 
            +
                end
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                # Clear the existing actions on a rake task.
         | 
| 159 | 
            +
                def clear_actions
         | 
| 160 | 
            +
                  actions.clear
         | 
| 161 | 
            +
                  self
         | 
| 162 | 
            +
                end
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                # Clear the existing comments on a rake task.
         | 
| 165 | 
            +
                def clear_comments
         | 
| 166 | 
            +
                  @comments = []
         | 
| 167 | 
            +
                  self
         | 
| 168 | 
            +
                end
         | 
| 169 | 
            +
             | 
| 170 | 
            +
                # Invoke the task if it is needed.  Prerequisites are invoked first.
         | 
| 171 | 
            +
                def invoke(*args)
         | 
| 172 | 
            +
                  task_args = TaskArguments.new(arg_names, args)
         | 
| 173 | 
            +
                  invoke_with_call_chain(task_args, InvocationChain::EMPTY)
         | 
| 174 | 
            +
                end
         | 
| 175 | 
            +
             | 
| 176 | 
            +
                # Same as invoke, but explicitly pass a call chain to detect
         | 
| 177 | 
            +
                # circular dependencies.
         | 
| 178 | 
            +
                def invoke_with_call_chain(task_args, invocation_chain) # :nodoc:
         | 
| 179 | 
            +
                  new_chain = InvocationChain.append(self, invocation_chain)
         | 
| 180 | 
            +
                  @lock.synchronize do
         | 
| 181 | 
            +
                    if application.options.trace
         | 
| 182 | 
            +
                      application.trace "** Invoke #{name} #{format_trace_flags}"
         | 
| 183 | 
            +
                    end
         | 
| 184 | 
            +
                    return if @already_invoked
         | 
| 185 | 
            +
                    @already_invoked = true
         | 
| 186 | 
            +
                    invoke_prerequisites(task_args, new_chain)
         | 
| 187 | 
            +
                    execute(task_args) if needed?
         | 
| 188 | 
            +
                  end
         | 
| 189 | 
            +
                rescue Exception => ex
         | 
| 190 | 
            +
                  add_chain_to(ex, new_chain)
         | 
| 191 | 
            +
                  raise ex
         | 
| 192 | 
            +
                end
         | 
| 193 | 
            +
                protected :invoke_with_call_chain
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                def add_chain_to(exception, new_chain) # :nodoc:
         | 
| 196 | 
            +
                  exception.extend(InvocationExceptionMixin) unless
         | 
| 197 | 
            +
                    exception.respond_to?(:chain)
         | 
| 198 | 
            +
                  exception.chain = new_chain if exception.chain.nil?
         | 
| 199 | 
            +
                end
         | 
| 200 | 
            +
                private :add_chain_to
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                # Invoke all the prerequisites of a task.
         | 
| 203 | 
            +
                def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
         | 
| 204 | 
            +
                  if application.options.always_multitask
         | 
| 205 | 
            +
                    invoke_prerequisites_concurrently(task_args, invocation_chain)
         | 
| 206 | 
            +
                  else
         | 
| 207 | 
            +
                    prerequisite_tasks.each { |p|
         | 
| 208 | 
            +
                      prereq_args = task_args.new_scope(p.arg_names)
         | 
| 209 | 
            +
                      p.invoke_with_call_chain(prereq_args, invocation_chain)
         | 
| 210 | 
            +
                    }
         | 
| 211 | 
            +
                  end
         | 
| 212 | 
            +
                end
         | 
| 213 | 
            +
             | 
| 214 | 
            +
                # Invoke all the prerequisites of a task in parallel.
         | 
| 215 | 
            +
                def invoke_prerequisites_concurrently(task_args, invocation_chain)# :nodoc:
         | 
| 216 | 
            +
                  futures = prerequisite_tasks.map do |p|
         | 
| 217 | 
            +
                    prereq_args = task_args.new_scope(p.arg_names)
         | 
| 218 | 
            +
                    application.thread_pool.future(p) do |r|
         | 
| 219 | 
            +
                      r.invoke_with_call_chain(prereq_args, invocation_chain)
         | 
| 220 | 
            +
                    end
         | 
| 221 | 
            +
                  end
         | 
| 222 | 
            +
                  futures.each { |f| f.value }
         | 
| 223 | 
            +
                end
         | 
| 224 | 
            +
             | 
| 225 | 
            +
                # Format the trace flags for display.
         | 
| 226 | 
            +
                def format_trace_flags
         | 
| 227 | 
            +
                  flags = []
         | 
| 228 | 
            +
                  flags << "first_time" unless @already_invoked
         | 
| 229 | 
            +
                  flags << "not_needed" unless needed?
         | 
| 230 | 
            +
                  flags.empty? ? "" : "(" + flags.join(", ") + ")"
         | 
| 231 | 
            +
                end
         | 
| 232 | 
            +
                private :format_trace_flags
         | 
| 233 | 
            +
             | 
| 234 | 
            +
                # Execute the actions associated with this task.
         | 
| 235 | 
            +
                def execute(args=nil)
         | 
| 236 | 
            +
                  args ||= EMPTY_TASK_ARGS
         | 
| 237 | 
            +
                  if application.options.dryrun
         | 
| 238 | 
            +
                    application.trace "** Execute (dry run) #{name}"
         | 
| 239 | 
            +
                    return
         | 
| 240 | 
            +
                  end
         | 
| 241 | 
            +
                  application.trace "** Execute #{name}" if application.options.trace
         | 
| 242 | 
            +
                  application.enhance_with_matching_rule(name) if @actions.empty?
         | 
| 243 | 
            +
                  @actions.each do |act|
         | 
| 244 | 
            +
                    case act.arity
         | 
| 245 | 
            +
                    when 1
         | 
| 246 | 
            +
                      act.call(self)
         | 
| 247 | 
            +
                    else
         | 
| 248 | 
            +
                      act.call(self, args)
         | 
| 249 | 
            +
                    end
         | 
| 250 | 
            +
                  end
         | 
| 251 | 
            +
                end
         | 
| 252 | 
            +
             | 
| 253 | 
            +
                # Is this task needed?
         | 
| 254 | 
            +
                def needed?
         | 
| 255 | 
            +
                  true
         | 
| 256 | 
            +
                end
         | 
| 257 | 
            +
             | 
| 258 | 
            +
                # Timestamp for this task.  Basic tasks return the current time for their
         | 
| 259 | 
            +
                # time stamp.  Other tasks can be more sophisticated.
         | 
| 260 | 
            +
                def timestamp
         | 
| 261 | 
            +
                  Time.now
         | 
| 262 | 
            +
                end
         | 
| 263 | 
            +
             | 
| 264 | 
            +
                # Add a description to the task.  The description can consist of an option
         | 
| 265 | 
            +
                # argument list (enclosed brackets) and an optional comment.
         | 
| 266 | 
            +
                def add_description(description)
         | 
| 267 | 
            +
                  return unless description
         | 
| 268 | 
            +
                  comment = description.strip
         | 
| 269 | 
            +
                  add_comment(comment) if comment && ! comment.empty?
         | 
| 270 | 
            +
                end
         | 
| 271 | 
            +
             | 
| 272 | 
            +
                def comment=(comment) # :nodoc:
         | 
| 273 | 
            +
                  add_comment(comment)
         | 
| 274 | 
            +
                end
         | 
| 275 | 
            +
             | 
| 276 | 
            +
                def add_comment(comment) # :nodoc:
         | 
| 277 | 
            +
                  return if comment.nil?
         | 
| 278 | 
            +
                  @comments << comment unless @comments.include?(comment)
         | 
| 279 | 
            +
                end
         | 
| 280 | 
            +
                private :add_comment
         | 
| 281 | 
            +
             | 
| 282 | 
            +
                # Full collection of comments. Multiple comments are separated by
         | 
| 283 | 
            +
                # newlines.
         | 
| 284 | 
            +
                def full_comment
         | 
| 285 | 
            +
                  transform_comments("\n")
         | 
| 286 | 
            +
                end
         | 
| 287 | 
            +
             | 
| 288 | 
            +
                # First line (or sentence) of all comments. Multiple comments are
         | 
| 289 | 
            +
                # separated by a "/".
         | 
| 290 | 
            +
                def comment
         | 
| 291 | 
            +
                  transform_comments(" / ") { |c| first_sentence(c) }
         | 
| 292 | 
            +
                end
         | 
| 293 | 
            +
             | 
| 294 | 
            +
                # Transform the list of comments as specified by the block and
         | 
| 295 | 
            +
                # join with the separator.
         | 
| 296 | 
            +
                def transform_comments(separator, &block)
         | 
| 297 | 
            +
                  if @comments.empty?
         | 
| 298 | 
            +
                    nil
         | 
| 299 | 
            +
                  else
         | 
| 300 | 
            +
                    block ||= lambda { |c| c }
         | 
| 301 | 
            +
                    @comments.map(&block).join(separator)
         | 
| 302 | 
            +
                  end
         | 
| 303 | 
            +
                end
         | 
| 304 | 
            +
                private :transform_comments
         | 
| 305 | 
            +
             | 
| 306 | 
            +
                # Get the first sentence in a string. The sentence is terminated
         | 
| 307 | 
            +
                # by the first period or the end of the line. Decimal points do
         | 
| 308 | 
            +
                # not count as periods.
         | 
| 309 | 
            +
                def first_sentence(string)
         | 
| 310 | 
            +
                  string.split(/\.[ \t]|\.$|\n/).first
         | 
| 311 | 
            +
                end
         | 
| 312 | 
            +
                private :first_sentence
         | 
| 313 | 
            +
             | 
| 314 | 
            +
                # Set the names of the arguments for this task. +args+ should be
         | 
| 315 | 
            +
                # an array of symbols, one for each argument name.
         | 
| 316 | 
            +
                def set_arg_names(args)
         | 
| 317 | 
            +
                  @arg_names = args.map { |a| a.to_sym }
         | 
| 318 | 
            +
                end
         | 
| 319 | 
            +
             | 
| 320 | 
            +
                # Return a string describing the internal state of a task.  Useful for
         | 
| 321 | 
            +
                # debugging.
         | 
| 322 | 
            +
                def investigation
         | 
| 323 | 
            +
                  result = "------------------------------\n"
         | 
| 324 | 
            +
                  result << "Investigating #{name}\n"
         | 
| 325 | 
            +
                  result << "class: #{self.class}\n"
         | 
| 326 | 
            +
                  result <<  "task needed: #{needed?}\n"
         | 
| 327 | 
            +
                  result <<  "timestamp: #{timestamp}\n"
         | 
| 328 | 
            +
                  result << "pre-requisites: \n"
         | 
| 329 | 
            +
                  prereqs = prerequisite_tasks
         | 
| 330 | 
            +
                  prereqs.sort! { |a, b| a.timestamp <=> b.timestamp }
         | 
| 331 | 
            +
                  prereqs.each do |p|
         | 
| 332 | 
            +
                    result << "--#{p.name} (#{p.timestamp})\n"
         | 
| 333 | 
            +
                  end
         | 
| 334 | 
            +
                  latest_prereq = prerequisite_tasks.map { |pre| pre.timestamp }.max
         | 
| 335 | 
            +
                  result <<  "latest-prerequisite time: #{latest_prereq}\n"
         | 
| 336 | 
            +
                  result << "................................\n\n"
         | 
| 337 | 
            +
                  return result
         | 
| 338 | 
            +
                end
         | 
| 339 | 
            +
             | 
| 340 | 
            +
                # ----------------------------------------------------------------
         | 
| 341 | 
            +
                # Rake Module Methods
         | 
| 342 | 
            +
                #
         | 
| 343 | 
            +
                class << self
         | 
| 344 | 
            +
             | 
| 345 | 
            +
                  # Clear the task list.  This cause rake to immediately forget all the
         | 
| 346 | 
            +
                  # tasks that have been assigned.  (Normally used in the unit tests.)
         | 
| 347 | 
            +
                  def clear
         | 
| 348 | 
            +
                    Rake.application.clear
         | 
| 349 | 
            +
                  end
         | 
| 350 | 
            +
             | 
| 351 | 
            +
                  # List of all defined tasks.
         | 
| 352 | 
            +
                  def tasks
         | 
| 353 | 
            +
                    Rake.application.tasks
         | 
| 354 | 
            +
                  end
         | 
| 355 | 
            +
             | 
| 356 | 
            +
                  # Return a task with the given name.  If the task is not currently
         | 
| 357 | 
            +
                  # known, try to synthesize one from the defined rules.  If no rules are
         | 
| 358 | 
            +
                  # found, but an existing file matches the task name, assume it is a file
         | 
| 359 | 
            +
                  # task with no dependencies or actions.
         | 
| 360 | 
            +
                  def [](task_name)
         | 
| 361 | 
            +
                    Rake.application[task_name]
         | 
| 362 | 
            +
                  end
         | 
| 363 | 
            +
             | 
| 364 | 
            +
                  # TRUE if the task name is already defined.
         | 
| 365 | 
            +
                  def task_defined?(task_name)
         | 
| 366 | 
            +
                    Rake.application.lookup(task_name) != nil
         | 
| 367 | 
            +
                  end
         | 
| 368 | 
            +
             | 
| 369 | 
            +
                  # Define a task given +args+ and an option block.  If a rule with the
         | 
| 370 | 
            +
                  # given name already exists, the prerequisites and actions are added to
         | 
| 371 | 
            +
                  # the existing task.  Returns the defined task.
         | 
| 372 | 
            +
                  def define_task(*args, &block)
         | 
| 373 | 
            +
                    Rake.application.define_task(self, *args, &block)
         | 
| 374 | 
            +
                  end
         | 
| 375 | 
            +
             | 
| 376 | 
            +
                  # Define a rule for synthesizing tasks.
         | 
| 377 | 
            +
                  def create_rule(*args, &block)
         | 
| 378 | 
            +
                    Rake.application.create_rule(*args, &block)
         | 
| 379 | 
            +
                  end
         | 
| 380 | 
            +
             | 
| 381 | 
            +
                  # Apply the scope to the task name according to the rules for
         | 
| 382 | 
            +
                  # this kind of task.  Generic tasks will accept the scope as
         | 
| 383 | 
            +
                  # part of the name.
         | 
| 384 | 
            +
                  def scope_name(scope, task_name)
         | 
| 385 | 
            +
            #        (scope + [task_name]).join(':')
         | 
| 386 | 
            +
                    scope.path_with_task_name(task_name)
         | 
| 387 | 
            +
                  end
         | 
| 388 | 
            +
             | 
| 389 | 
            +
                end # class << Rake::Task
         | 
| 390 | 
            +
              end # class Rake::Task
         | 
| 391 | 
            +
            end
         | 
| @@ -0,0 +1,102 @@ | |
| 1 | 
            +
            module Rake
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              ##
         | 
| 4 | 
            +
              # TaskArguments manage the arguments passed to a task.
         | 
| 5 | 
            +
              #
         | 
| 6 | 
            +
              class TaskArguments
         | 
| 7 | 
            +
                include Enumerable
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                # Argument names
         | 
| 10 | 
            +
                attr_reader :names
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                # Create a TaskArgument object with a list of argument +names+ and a set
         | 
| 13 | 
            +
                # of associated +values+.  +parent+ is the parent argument object.
         | 
| 14 | 
            +
                def initialize(names, values, parent=nil)
         | 
| 15 | 
            +
                  @names = names
         | 
| 16 | 
            +
                  @parent = parent
         | 
| 17 | 
            +
                  @hash = {}
         | 
| 18 | 
            +
                  @values = values
         | 
| 19 | 
            +
                  names.each_with_index { |name, i|
         | 
| 20 | 
            +
                    @hash[name.to_sym] = values[i] unless values[i].nil?
         | 
| 21 | 
            +
                  }
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                # Retrieve the complete array of sequential values
         | 
| 25 | 
            +
                def to_a
         | 
| 26 | 
            +
                  @values.dup
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                # Retrieve the list of values not associated with named arguments
         | 
| 30 | 
            +
                def extras
         | 
| 31 | 
            +
                  @values[@names.length..-1] || []
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                # Create a new argument scope using the prerequisite argument
         | 
| 35 | 
            +
                # names.
         | 
| 36 | 
            +
                def new_scope(names)
         | 
| 37 | 
            +
                  values = names.map { |n| self[n] }
         | 
| 38 | 
            +
                  self.class.new(names, values + extras, self)
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                # Find an argument value by name or index.
         | 
| 42 | 
            +
                def [](index)
         | 
| 43 | 
            +
                  lookup(index.to_sym)
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                # Specify a hash of default values for task arguments. Use the
         | 
| 47 | 
            +
                # defaults only if there is no specific value for the given
         | 
| 48 | 
            +
                # argument.
         | 
| 49 | 
            +
                def with_defaults(defaults)
         | 
| 50 | 
            +
                  @hash = defaults.merge(@hash)
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                # Enumerates the arguments and their values
         | 
| 54 | 
            +
                def each(&block)
         | 
| 55 | 
            +
                  @hash.each(&block)
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                # Extracts the argument values at +keys+
         | 
| 59 | 
            +
                def values_at(*keys)
         | 
| 60 | 
            +
                  keys.map { |k| lookup(k) }
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                # Returns the value of the given argument via method_missing
         | 
| 64 | 
            +
                def method_missing(sym, *args)
         | 
| 65 | 
            +
                  lookup(sym.to_sym)
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                # Returns a Hash of arguments and their values
         | 
| 69 | 
            +
                def to_hash
         | 
| 70 | 
            +
                  @hash
         | 
| 71 | 
            +
                end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                def to_s # :nodoc:
         | 
| 74 | 
            +
                  @hash.inspect
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                def inspect # :nodoc:
         | 
| 78 | 
            +
                  to_s
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                # Returns true if +key+ is one of the arguments
         | 
| 82 | 
            +
                def has_key?(key)
         | 
| 83 | 
            +
                  @hash.has_key?(key)
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                def fetch(*args, &block)
         | 
| 87 | 
            +
                  @hash.fetch(*args, &block)
         | 
| 88 | 
            +
                end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                protected
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                def lookup(name) # :nodoc:
         | 
| 93 | 
            +
                  if @hash.has_key?(name)
         | 
| 94 | 
            +
                    @hash[name]
         | 
| 95 | 
            +
                  elsif @parent
         | 
| 96 | 
            +
                    @parent.lookup(name)
         | 
| 97 | 
            +
                  end
         | 
| 98 | 
            +
                end
         | 
| 99 | 
            +
              end
         | 
| 100 | 
            +
             | 
| 101 | 
            +
              EMPTY_TASK_ARGS = TaskArguments.new([], []) # :nodoc:
         | 
| 102 | 
            +
            end
         |