[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]