summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--NEWS5
-rw-r--r--lib/rake.rb3
-rw-r--r--lib/rake/application.rb10
-rw-r--r--lib/rake/contrib/.document1
-rw-r--r--lib/rake/ext/time.rb5
-rw-r--r--lib/rake/file_task.rb2
-rw-r--r--lib/rake/late_time.rb17
-rw-r--r--lib/rake/packagetask.rb5
-rw-r--r--lib/rake/task_manager.rb2
-rw-r--r--test/lib/minitest/unit.rb2
-rw-r--r--test/rake/helper.rb4
-rw-r--r--test/rake/support/rakefile_definitions.rb2
-rw-r--r--test/rake/test_rake_application.rb22
-rw-r--r--test/rake/test_rake_definitions.rb5
-rw-r--r--test/rake/test_rake_file_task.rb12
-rw-r--r--test/rake/test_rake_late_time.rb18
-rw-r--r--test/rake/test_rake_thread_pool.rb1
18 files changed, 90 insertions, 35 deletions
diff --git a/ChangeLog b/ChangeLog
index e37fe56fdc..7ed6a41dc6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Tue Nov 25 15:59:46 2014 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rake: Update to rake 10.4.0
+ * test/rake: ditto.
+ * NEWS: ditto.
+
+ * test/lib/minitest/unit.rb: Add compatibility shim for minitest 5.
+ This only provides minitest 5 unit test naming compatibility.
+
Tue Nov 25 15:26:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
* tool/vcs.rb (get_revisions): use Time.new instead of Time.mktime
diff --git a/NEWS b/NEWS
index b57eb3e91a..bbce1b5765 100644
--- a/NEWS
+++ b/NEWS
@@ -180,6 +180,11 @@ with all sufficient information, see the ChangeLog file.
* New methods:
* Pathname#birthtime
+* Rake
+ * Updated to Rake 10.4.0. For full release notes see:
+
+ http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0
+
* RubyGems
* Updated to RubyGems 2.4.2. For full release notes see:
diff --git a/lib/rake.rb b/lib/rake.rb
index 47cce17064..ab04a7f385 100644
--- a/lib/rake.rb
+++ b/lib/rake.rb
@@ -21,7 +21,7 @@
#++
module Rake
- VERSION = '10.3.2'
+ VERSION = '10.4.0'
end
require 'rake/version'
@@ -63,6 +63,7 @@ require 'rake/file_utils_ext'
require 'rake/file_list'
require 'rake/default_loader'
require 'rake/early_time'
+require 'rake/late_time'
require 'rake/name_space'
require 'rake/task_manager'
require 'rake/application'
diff --git a/lib/rake/application.rb b/lib/rake/application.rb
index 795b4685d4..96f907b077 100644
--- a/lib/rake/application.rb
+++ b/lib/rake/application.rb
@@ -20,6 +20,9 @@ module Rake
include TaskManager
include TraceOutput
+ # The command-line arguments rake is using (defaults to ARGV)
+ attr_reader :argv # :nodoc:
+
# The name of the application (typically 'rake')
attr_reader :name
@@ -45,6 +48,7 @@ module Rake
# Initialize a Rake::Application object.
def initialize
super
+ @argv = ARGV.dup
@name = 'rake'
@rakefiles = DEFAULT_RAKEFILES.dup
@rakefile = nil
@@ -73,6 +77,8 @@ module Rake
# call +top_level+ to run your top level tasks.
def run
standard_exception_handling do
+ @argv = argv
+
init
load_rakefile
top_level
@@ -633,7 +639,7 @@ module Rake
standard_rake_options.each { |args| opts.on(*args) }
opts.environment('RAKEOPT')
- end.parse!
+ end.parse! @argv
end
# Similar to the regular Ruby +require+ command, but will check
@@ -729,7 +735,7 @@ module Rake
# Environmental assignments are processed at this time as well.
def collect_command_line_tasks # :nodoc:
@top_level_tasks = []
- ARGV.each do |arg|
+ @argv.each do |arg|
if arg =~ /^(\w+)=(.*)$/m
ENV[$1] = $2
else
diff --git a/lib/rake/contrib/.document b/lib/rake/contrib/.document
index 8b13789179..e69de29bb2 100644
--- a/lib/rake/contrib/.document
+++ b/lib/rake/contrib/.document
@@ -1 +0,0 @@
-
diff --git a/lib/rake/ext/time.rb b/lib/rake/ext/time.rb
index c058649b7e..d3b8cf9dc1 100644
--- a/lib/rake/ext/time.rb
+++ b/lib/rake/ext/time.rb
@@ -1,12 +1,13 @@
#--
-# Extensions to time to allow comparisons with an early time class.
+# Extensions to time to allow comparisons with early and late time classes.
require 'rake/early_time'
+require 'rake/late_time'
class Time # :nodoc: all
alias rake_original_time_compare :<=>
def <=>(other)
- if Rake::EarlyTime === other
+ if Rake::EarlyTime === other || Rake::LateTime === other
- other.<=>(self)
else
rake_original_time_compare(other)
diff --git a/lib/rake/file_task.rb b/lib/rake/file_task.rb
index 11823bbe46..4c9b04074f 100644
--- a/lib/rake/file_task.rb
+++ b/lib/rake/file_task.rb
@@ -21,7 +21,7 @@ module Rake
if File.exist?(name)
File.mtime(name.to_s)
else
- Rake::EARLY
+ Rake::LATE
end
end
diff --git a/lib/rake/late_time.rb b/lib/rake/late_time.rb
new file mode 100644
index 0000000000..d959a7821f
--- /dev/null
+++ b/lib/rake/late_time.rb
@@ -0,0 +1,17 @@
+module Rake
+ # LateTime is a fake timestamp that occurs _after_ any other time value.
+ class LateTime
+ include Comparable
+ include Singleton
+
+ def <=>(other)
+ 1
+ end
+
+ def to_s
+ '<LATE TIME>'
+ end
+ end
+
+ LATE = LateTime.instance
+end
diff --git a/lib/rake/packagetask.rb b/lib/rake/packagetask.rb
index e862952c05..249ee72b11 100644
--- a/lib/rake/packagetask.rb
+++ b/lib/rake/packagetask.rb
@@ -143,10 +143,7 @@ module Rake
end
end
- directory package_dir
-
- file package_dir_path => @package_files do
- mkdir_p package_dir rescue nil
+ directory package_dir_path => @package_files do
@package_files.each do |fn|
f = File.join(package_dir_path, fn)
fdir = File.dirname(f)
diff --git a/lib/rake/task_manager.rb b/lib/rake/task_manager.rb
index 221c68cec4..cbb9f5ee2f 100644
--- a/lib/rake/task_manager.rb
+++ b/lib/rake/task_manager.rb
@@ -111,7 +111,7 @@ module Rake
if args.empty?
task_name = key
arg_names = []
- deps = value
+ deps = value || []
else
task_name = args.shift
arg_names = key
diff --git a/test/lib/minitest/unit.rb b/test/lib/minitest/unit.rb
index 665e61446e..0a6558dfbb 100644
--- a/test/lib/minitest/unit.rb
+++ b/test/lib/minitest/unit.rb
@@ -1412,6 +1412,8 @@ module MiniTest
include MiniTest::Assertions
end # class TestCase
end # class Unit
+
+ Test = Unit::TestCase
end # module MiniTest
Minitest = MiniTest # :nodoc: because ugh... I typo this all the time
diff --git a/test/rake/helper.rb b/test/rake/helper.rb
index 526eb306fe..ac1205a642 100644
--- a/test/rake/helper.rb
+++ b/test/rake/helper.rb
@@ -2,7 +2,7 @@ require 'rubygems'
$:.unshift File.expand_path('../../lib', __FILE__)
begin
- gem 'minitest', '~> 4'
+ gem 'minitest', '~> 5'
rescue Gem::LoadError
end
@@ -21,7 +21,7 @@ rescue NoMethodError, LoadError
require 'test/support/rakefile_definitions'
end
-class Rake::TestCase < MiniTest::Unit::TestCase
+class Rake::TestCase < Minitest::Test
include FileCreation
include Rake::DSL
diff --git a/test/rake/support/rakefile_definitions.rb b/test/rake/support/rakefile_definitions.rb
index d4311425f1..a637c7e943 100644
--- a/test/rake/support/rakefile_definitions.rb
+++ b/test/rake/support/rakefile_definitions.rb
@@ -460,7 +460,7 @@ end
TEST_TASK
open 'a_test.rb', 'w' do |io|
io << "require 'minitest/autorun'\n"
- io << "class ExitTaskTest < MiniTest::Unit::TestCase\n"
+ io << "class ExitTaskTest < Minitest::Test\n"
io << " def test_exit\n"
io << " assert false, 'this should fail'\n"
io << " end\n"
diff --git a/test/rake/test_rake_application.rb b/test/rake/test_rake_application.rb
index f52040471b..19e5005989 100644
--- a/test/rake/test_rake_application.rb
+++ b/test/rake/test_rake_application.rb
@@ -10,9 +10,9 @@ class TestRakeApplication < Rake::TestCase
end
def setup_command_line(*options)
- ARGV.clear
+ @app.argv.clear
options.each do |option|
- ARGV << option
+ @app.argv << option
end
end
@@ -268,7 +268,7 @@ class TestRakeApplication < Rake::TestCase
end
def test_load_rakefile_not_found
- ARGV.clear
+ @app.argv.clear
Dir.chdir @tempdir
ENV['RAKE_SYSTEM'] = 'not_exist'
@@ -378,7 +378,7 @@ class TestRakeApplication < Rake::TestCase
@app.handle_options
- assert !ARGV.include?(valid_option)
+ assert !@app.argv.include?(valid_option)
assert @app.options.trace
end
@@ -406,14 +406,14 @@ class TestRakeApplication < Rake::TestCase
setup_command_line("--trace", "sometask")
@app.handle_options
- assert ARGV.include?("sometask")
+ assert @app.argv.include?("sometask")
assert @app.options.trace
end
def test_good_run
ran = false
- ARGV << '--rakelib=""'
+ @app.argv << '--rakelib=""'
@app.options.silent = true
@@ -468,7 +468,7 @@ class TestRakeApplication < Rake::TestCase
}
assert_match(/see full trace/i, err)
ensure
- ARGV.clear
+ @app.argv.clear
end
def test_bad_run_with_trace
@@ -479,7 +479,7 @@ class TestRakeApplication < Rake::TestCase
}
refute_match(/see full trace/i, err)
ensure
- ARGV.clear
+ @app.argv.clear
end
def test_bad_run_with_backtrace
@@ -492,7 +492,7 @@ class TestRakeApplication < Rake::TestCase
}
refute_match(/see full trace/, err)
ensure
- ARGV.clear
+ @app.argv.clear
end
CustomError = Class.new(RuntimeError)
@@ -549,7 +549,7 @@ class TestRakeApplication < Rake::TestCase
end
assert_match(/Secondary Error/, err)
ensure
- ARGV.clear
+ @app.argv.clear
end
def test_run_with_bad_options
@@ -559,7 +559,7 @@ class TestRakeApplication < Rake::TestCase
capture_io { @app.run }
}
ensure
- ARGV.clear
+ @app.argv.clear
end
def test_standard_exception_handling_invalid_option
diff --git a/test/rake/test_rake_definitions.rb b/test/rake/test_rake_definitions.rb
index 4b2de9d1d2..ee474cb7c8 100644
--- a/test/rake/test_rake_definitions.rb
+++ b/test/rake/test_rake_definitions.rb
@@ -59,6 +59,11 @@ class TestRakeDefinitions < Rake::TestCase
assert_raises(RuntimeError) { Task[:x].invoke }
end
+ def test_falsey_dependencies
+ task :x => nil
+ assert_equal [], Task[:x].prerequisites
+ end
+
def test_implicit_file_dependencies
runs = []
create_existing_file
diff --git a/test/rake/test_rake_file_task.rb b/test/rake/test_rake_file_task.rb
index a6a9fa2c51..a249511442 100644
--- a/test/rake/test_rake_file_task.rb
+++ b/test/rake/test_rake_file_task.rb
@@ -24,6 +24,7 @@ class TestRakeFileTask < Rake::TestCase
File.delete(ftask.name) rescue nil
assert ftask.needed?, "file should be needed"
+ assert_equal Rake::LATE, ftask.timestamp
open(ftask.name, "w") { |f| f.puts "HI" }
@@ -84,19 +85,14 @@ class TestRakeFileTask < Rake::TestCase
end
def test_existing_file_depends_on_non_existing_file
- @ran = false
-
create_file(OLDFILE)
delete_file(NEWFILE)
- file NEWFILE do
- @ran = true
- end
-
- file OLDFILE => NEWFILE
+ file NEWFILE do |t| @runs << t.name end
+ file OLDFILE => NEWFILE do |t| @runs << t.name end
Task[OLDFILE].invoke
- assert @ran
+ assert_equal [NEWFILE, OLDFILE], @runs
end
def test_needed_eh_build_all
diff --git a/test/rake/test_rake_late_time.rb b/test/rake/test_rake_late_time.rb
new file mode 100644
index 0000000000..4b910a7085
--- /dev/null
+++ b/test/rake/test_rake_late_time.rb
@@ -0,0 +1,18 @@
+require File.expand_path('../helper', __FILE__)
+
+class TestRakeLateTime < Rake::TestCase
+ def test_late_time_comparisons
+ late = Rake::LATE
+ assert_equal late, late
+ assert late >= Time.now
+ assert late > Time.now
+ assert late != Time.now
+ assert Time.now < late
+ assert Time.now <= late
+ assert Time.now != late
+ end
+
+ def test_to_s
+ assert_equal '<LATE TIME>', Rake::LATE.to_s
+ end
+end
diff --git a/test/rake/test_rake_thread_pool.rb b/test/rake/test_rake_thread_pool.rb
index 421c38d90d..35a1fe9d1c 100644
--- a/test/rake/test_rake_thread_pool.rb
+++ b/test/rake/test_rake_thread_pool.rb
@@ -1,6 +1,5 @@
require File.expand_path('../helper', __FILE__)
require 'rake/thread_pool'
-require 'test/unit/assertions'
class TestRakeTestThreadPool < Rake::TestCase
include Rake