ruby-changes:20217
From: drbrain <ko1@a...>
Date: Tue, 28 Jun 2011 11:45:47 +0900 (JST)
Subject: [ruby-changes:20217] drbrain:r32265 (trunk): * lib/rake: Update rake to fix some bugs and hide deprecated features
drbrain 2011-06-28 11:45:29 +0900 (Tue, 28 Jun 2011) New Revision: 32265 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32265 Log: * lib/rake: Update rake to fix some bugs and hide deprecated features from RDoc. * lib/rake/version.rb: Bump version to 0.9.2.1 to distinguish it from the released version. * NEWS: ditto Added files: trunk/test/rake/test_rake_rake_test_loader.rb Modified files: trunk/ChangeLog trunk/NEWS trunk/lib/rake/classic_namespace.rb trunk/lib/rake/clean.rb trunk/lib/rake/dsl_definition.rb trunk/lib/rake/ext/time.rb trunk/lib/rake/file_utils.rb trunk/lib/rake/file_utils_ext.rb trunk/lib/rake/gempackagetask.rb trunk/lib/rake/rake_test_loader.rb trunk/lib/rake/rdoctask.rb trunk/lib/rake/task_arguments.rb trunk/lib/rake/version.rb trunk/lib/rake.rb trunk/test/rake/test_rake_file_utils.rb trunk/test/rake/test_rake_functional.rb trunk/test/rake/test_rake_task_with_arguments.rb trunk/test/rake/test_rake_test_task.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 32264) +++ ChangeLog (revision 32265) @@ -1,3 +1,11 @@ +Tue Jun 28 11:45:30 2011 Eric Hodel <drbrain@s...> + + * lib/rake: Update rake to fix some bugs and hide deprecated features + from RDoc. + * lib/rake/version.rb: Bump version to 0.9.2.1 to distinguish it from + the released version. + * NEWS: ditto + Tue Jun 28 11:17:28 2011 Eric Hodel <drbrain@s...> * lib/rdoc: Update to RDoc 3.7 (final) Index: lib/rake/clean.rb =================================================================== --- lib/rake/clean.rb (revision 32264) +++ lib/rake/clean.rb (revision 32265) @@ -13,6 +13,7 @@ require 'rake' +# :stopdoc: CLEAN = Rake::FileList["**/*~", "**/*.bak", "**/core"] CLEAN.clear_exclude.exclude { |fn| fn.pathmap("%f") == 'core' && File.directory?(fn) Index: lib/rake/dsl_definition.rb =================================================================== --- lib/rake/dsl_definition.rb (revision 32264) +++ lib/rake/dsl_definition.rb (revision 32265) @@ -2,11 +2,18 @@ require 'rake/file_utils_ext' module Rake + + ## + # DSL is a module that provides #task, #desc, #namespace, etc. Use this + # when you'd like to use rake outside the top level scope. + module DSL + #-- # Include the FileUtils file manipulation functions in the top # level module, but mark them private so that they don't # unintentionally define methods on other objects. + #++ include FileUtilsExt private(*FileUtils.instance_methods(false)) @@ -139,7 +146,7 @@ end end - module DeprecatedObjectDSL + module DeprecatedObjectDSL # :nodoc: Commands = Object.new.extend DSL DSL.private_instance_methods(false).each do |name| line = __LINE__+1 Index: lib/rake/ext/time.rb =================================================================== --- lib/rake/ext/time.rb (revision 32264) +++ lib/rake/ext/time.rb (revision 32265) @@ -1,6 +1,6 @@ -# ########################################################################### +#-- # Extensions to time to allow comparisons with an early time class. -# + class Time alias rake_original_time_compare :<=> def <=>(other) @@ -10,5 +10,5 @@ rake_original_time_compare(other) end end -end # class Time +end Index: lib/rake/file_utils.rb =================================================================== --- lib/rake/file_utils.rb (revision 32264) +++ lib/rake/file_utils.rb (revision 32265) @@ -1,10 +1,9 @@ require 'rbconfig' require 'fileutils' -# ########################################################################### +#-- # This a FileUtils extension that defines several additional commands to be # added to the FileUtils utility functions. -# module FileUtils # Path to the currently running Ruby program RUBY = File.join( @@ -38,6 +37,7 @@ options[:noop] ||= Rake::FileUtilsExt.nowrite_flag Rake.rake_check_options options, :noop, :verbose Rake.rake_output_message cmd.join(" ") if options[:verbose] + unless options[:noop] res = rake_system(*cmd) status = $? @@ -46,7 +46,7 @@ end end - def create_shell_runner(cmd) + def create_shell_runner(cmd) # :nodoc: show_command = cmd.join(" ") show_command = show_command[0,42] + "..." unless $trace lambda { |ok, status| @@ -55,14 +55,16 @@ end private :create_shell_runner - def set_verbose_option(options) - if options[:verbose].nil? - options[:verbose] = Rake::FileUtilsExt.verbose_flag.nil? || Rake::FileUtilsExt.verbose_flag + def set_verbose_option(options) # :nodoc: + unless options.key? :verbose + options[:verbose] = + Rake::FileUtilsExt.verbose_flag == Rake::FileUtilsExt::DEFAULT || + Rake::FileUtilsExt.verbose_flag end end private :set_verbose_option - def rake_system(*cmd) + def rake_system(*cmd) # :nodoc: Rake::AltSystem.system(*cmd) end private :rake_system Index: lib/rake/file_utils_ext.rb =================================================================== --- lib/rake/file_utils_ext.rb (revision 32264) +++ lib/rake/file_utils_ext.rb (revision 32265) @@ -12,7 +12,10 @@ class << self attr_accessor :verbose_flag, :nowrite_flag end - FileUtilsExt.verbose_flag = nil + + DEFAULT = Object.new + + FileUtilsExt.verbose_flag = DEFAULT FileUtilsExt.nowrite_flag = false $fileutils_verbose = true Index: lib/rake/version.rb =================================================================== --- lib/rake/version.rb (revision 32264) +++ lib/rake/version.rb (revision 32265) @@ -1,7 +1,7 @@ module Rake - VERSION = '0.9.2' + VERSION = '0.9.2.1' - module Version + module Version # :nodoc: all MAJOR, MINOR, BUILD = VERSION.split '.' NUMBERS = [ MAJOR, MINOR, BUILD ] end Index: lib/rake/task_arguments.rb =================================================================== --- lib/rake/task_arguments.rb (revision 32264) +++ lib/rake/task_arguments.rb (revision 32265) @@ -43,6 +43,10 @@ @hash.each(&block) end + def values_at(*keys) + keys.map { |k| lookup(k) } + end + def method_missing(sym, *args, &block) lookup(sym.to_sym) end Index: lib/rake/classic_namespace.rb =================================================================== --- lib/rake/classic_namespace.rb (revision 32264) +++ lib/rake/classic_namespace.rb (revision 32265) @@ -3,7 +3,9 @@ # referenced Task from the top level. warn "WARNING: Classic namespaces are deprecated and will be removed from future versions of Rake." +# :stopdoc: Task = Rake::Task FileTask = Rake::FileTask FileCreationTask = Rake::FileCreationTask RakeApp = Rake::Application +# :startdoc: Index: lib/rake/rake_test_loader.rb =================================================================== --- lib/rake/rake_test_loader.rb (revision 32264) +++ lib/rake/rake_test_loader.rb (revision 32265) @@ -1,13 +1,22 @@ require 'rake' # Load the test files from the command line. +argv = ARGV.select do |argument| + case argument + when /^-/ then + argument + when /\*/ then + FileList[argument].to_a.each do |file| + require File.expand_path file + end -ARGV.each do |f| - next if f =~ /^-/ + false + else + require File.expand_path argument - if f =~ /\*/ - FileList[f].to_a.each { |fn| require File.expand_path(fn) } - else - require File.expand_path(f) + false end end + +ARGV.replace argv + Index: lib/rake/gempackagetask.rb =================================================================== --- lib/rake/gempackagetask.rb (revision 32264) +++ lib/rake/gempackagetask.rb (revision 32265) @@ -7,6 +7,8 @@ require 'rake' +# :stopdoc: + module Rake GemPackageTask = Gem::PackageTask end Index: lib/rake/rdoctask.rb =================================================================== --- lib/rake/rdoctask.rb (revision 32264) +++ lib/rake/rdoctask.rb (revision 32265) @@ -13,6 +13,8 @@ rescue LoadError, Gem::LoadError end +# :stopdoc: + if defined?(RDoc::Task) then module Rake RDocTask = RDoc::Task unless const_defined? :RDocTask Index: lib/rake.rb =================================================================== --- lib/rake.rb (revision 32264) +++ lib/rake.rb (revision 32265) @@ -23,7 +23,9 @@ require 'rake/version' +# :stopdoc: RAKEVERSION = Rake::VERSION +# :startdoc: require 'rbconfig' require 'fileutils' Index: NEWS =================================================================== --- NEWS (revision 32264) +++ NEWS (revision 32265) @@ -195,7 +195,7 @@ * support for bash/zsh completion. * Rake - * Rake has been upgraded from 0.8.7 to 0.9.2. For full release notes see + * Rake has been upgraded from 0.8.7 to 0.9.2.1. For full release notes see https://github.com/jimweirich/rake/blob/master/CHANGES * RDoc Index: test/rake/test_rake_task_with_arguments.rb =================================================================== --- test/rake/test_rake_task_with_arguments.rb (revision 32264) +++ test/rake/test_rake_task_with_arguments.rb (revision 32265) @@ -158,5 +158,13 @@ t = task(:t => [:pre]) t.invoke("bill", "1.2") end + + def test_values_at + t = task(:pre, [:a, :b, :c]) { |t, args| + a, b, c = args.values_at(:a, :b, :c) + assert_equal %w[1 2 3], [a, b, c] + } + t.invoke(*%w[1 2 3]) + end end Index: test/rake/test_rake_file_utils.rb =================================================================== --- test/rake/test_rake_file_utils.rb (revision 32264) +++ test/rake/test_rake_file_utils.rb (revision 32265) @@ -6,6 +6,7 @@ def teardown FileUtils::LN_SUPPORTED[0] = true + RakeFileUtils.verbose_flag = Rake::FileUtilsExt::DEFAULT super end @@ -101,7 +102,11 @@ def test_file_utils_methods_are_available_at_top_level create_file("a") - rm_rf "a" + + capture_io do + rm_rf "a" + end + refute File.exist?("a") end @@ -208,7 +213,7 @@ assert_equal "shellcommand.rb\n", err end - def test_sh_no_verbose + def test_sh_verbose_false shellcommand _, err = capture_io do @@ -220,6 +225,16 @@ assert_equal '', err end + def test_sh_verbose_flag_nil + shellcommand + + RakeFileUtils.verbose_flag = nil + + assert_silent do + sh %{shellcommand.rb}, :noop=>true + end + end + def test_ruby_with_a_single_string_argument check_expansion Index: test/rake/test_rake_functional.rb =================================================================== --- test/rake/test_rake_functional.rb (revision 32264) +++ test/rake/test_rake_functional.rb (revision 32265) @@ -117,7 +117,7 @@ rake - assert_not_match %r{^BAD:}, @out + refute_match %r{^BAD:}, @out end def test_rbext @@ -441,7 +441,7 @@ rake "-T" - assert_not_match("t2", @out) + refute_match("t2", @out) end def test_comment_after_desc_is_ignored @@ -476,10 +476,6 @@ private - def assert_not_match(pattern, string, comment="'#{pattern}' was found (incorrectly) in '#{string}.inspect") - assert_nil Regexp.new(pattern).match(string), comment - end - # Run a shell Ruby command with command line options (using the # default test options). Output is captured in @out, @err and # @status. Index: test/rake/test_rake_test_task.rb =================================================================== --- test/rake/test_rake_test_task.rb (revision 32264) +++ test/rake/test_rake_test_task.rb (revision 32265) @@ -4,18 +4,7 @@ class TestRakeTestTask < Rake::TestCase include Rake - def setup - super - - Task.clear - ENV.delete('TEST') - end - - def test_no_task - assert ! Task.task_defined?(:test) - end - - def test_defaults + def test_initialize tt = Rake::TestTask.new do |t| end refute_nil tt assert_equal :test, tt.name @@ -25,7 +14,7 @@ assert Task.task_defined?(:test) end - def test_non_defaults + def test_initialize_override tt = Rake::TestTask.new(:example) do |t| t.libs = ['src', 'ext'] t.pattern = 'test/tc_*.rb' @@ -39,29 +28,43 @@ assert Task.task_defined?(:example) end - def test_pattern - tt = Rake::TestTask.new do |t| - t.pattern = '*.rb' - end - assert_equal ['*.rb'], tt.file_list.to_a - end - - def test_env_test + def test_file_list_ENV_TEST ENV['TEST'] = 'testfile.rb' tt = Rake::TestTask.new do |t| t.pattern = '*' end + assert_equal ["testfile.rb"], tt.file_list.to_a + ensure + ENV.delete 'TEST' end - def test_test_files + def test_libs_equals + test_task = Rake::TestTask.new do |t| + t.libs << ["A", "B"] + end + + path = %w[lib A B].join File::PATH_SEPARATOR + + assert_equal "-I\"#{path}\"", test_task.ruby_opts_string + end + + def test_libs_equals_empty + test_task = Rake::TestTask.new do |t| + t.libs = [] + end + + assert_equal '', test_task.ruby_opts_string + end + + def test_pattern_equals tt = Rake::TestTask.new do |t| - t.test_files = FileList['a.rb', 'b.rb'] + t.pattern = '*.rb' end - assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a + assert_equal ['*.rb'], tt.file_list.to_a end - def test_both_pattern_and_test_files + def test_pattern_equals_test_files_equals tt = Rake::TestTask.new do |t| t.test_files = FileList['a.rb', 'b.rb'] t.pattern = '*.rb' @@ -69,48 +72,49 @@ assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a end - def test_direct_run_has_quoted_paths - test_task = Rake::TestTask.new(:tx) do |t| + def test_run_code_direct + test_task = Rake::TestTask.new do |t| t.loader = :direct end - assert_match(/-e ".*"/, test_task.run_code) + + assert_equal '-e "ARGV.each{|f| require f}"', test_task.run_code end - def test_testrb_run_has_quoted_paths_on_ruby_182 - test_task = Rake::TestTask.new(:tx) do |t| + def test_run_code_rake + test_task = Rake::TestTask.new do |t| + t.loader = :rake + end + + assert_match(/-I".*?" ".*?"/, test_task.run_code) + end + + def test_run_code_testrb_ruby_1_8_2 + test_task = Rake::TestTask.new do |t| t.loader = :testrb end + flexmock(test_task).should_receive(:ruby_version).and_return('1.8.2') + assert_match(/^-S testrb +".*"$/, test_task.run_code) end - def test_testrb_run_has_quoted_paths_on_ruby_186 - test_task = Rake::TestTask.new(:tx) do |t| + def test_run_code_testrb_ruby_1_8_6 + test_task = Rake::TestTask.new do |t| t.loader = :testrb end + flexmock(test_task).should_receive(:ruby_version).and_return('1.8.6') + assert_match(/^-S testrb +$/, test_task.run_code) end - def test_rake_run_has_quoted_paths - test_task = Rake::TestTask.new(:tx) do |t| - t.loader = :rake + def test_test_files_equals + tt = Rake::TestTask.new do |t| + t.test_files = FileList['a.rb', 'b.rb'] end - assert_match(/".*"/, test_task.run_code) - end - def test_nested_libs_will_be_flattened - test_task = Rake::TestTask.new(:tx) do |t| - t.libs << ["A", "B"] - end - sep = File::PATH_SEPARATOR - assert_match(/lib#{sep}A#{sep}B/, test_task.ruby_opts_string) + assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a end - def test_empty_lib_path_implies_no_dash_I_option - test_task = Rake::TestTask.new(:tx) do |t| - t.libs = [] - end - refute_match(/-I/, test_task.ruby_opts_string) - end end + Index: test/rake/test_rake_rake_test_loader.rb =================================================================== --- test/rake/test_rake_rake_test_loader.rb (revision 0) +++ test/rake/test_rake_rake_test_loader.rb (revision 32265) @@ -0,0 +1,21 @@ +require File.expand_path('../helper', __FILE__) + +class TestRakeRakeTestLoader < Rake::TestCase + + def test_pattern + orig_LOADED_FEATURES = $:.dup + FileUtils.touch 'foo.rb' + FileUtils.touch 'test_a.rb' + FileUtils.touch 'test_b.rb' + + ARGV.replace %w[foo.rb test_*.rb -v] + + load File.join(@orig_PWD, 'lib/rake/rake_test_loader.rb') + + assert_equal %w[-v], ARGV + ensure + $:.replace orig_LOADED_FEATURES + end + +end + Property changes on: test/rake/test_rake_rake_test_loader.rb ___________________________________________________________________ Added: svn:eol-style + LF -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/