aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-12-06 00:22:51 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-12-06 00:22:51 +0000
commite2bbfaa67c658acf09cdfe43f82d7c8b42c1aec7 (patch)
treeceba758b8484bf0a23400b7365d5aa7ffbd72adc
parente70210cad637c5be31709f65c0eb9603f8ec18a1 (diff)
downloadruby-e2bbfaa67c658acf09cdfe43f82d7c8b42c1aec7.tar.gz
* lib/rake: Update to rake 10.4.2
* test/rake: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/rake.rb2
-rw-r--r--lib/rake/application.rb25
-rw-r--r--lib/rake/dsl_definition.rb2
-rw-r--r--test/rake/test_rake_application.rb24
-rw-r--r--test/rake/test_rake_application_options.rb4
-rw-r--r--test/rake/test_rake_test_task.rb19
7 files changed, 47 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index 07cb21d5a2..e385a7e1fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Dec 6 09:22:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+
+ * lib/rake: Update to rake 10.4.2
+ * test/rake: ditto.
+
Sat Dec 6 06:48:03 2014 Eric Wong <e@80x24.org>
* compile.c (rb_iseq_build_from_ary): remove misc handling
diff --git a/lib/rake.rb b/lib/rake.rb
index ab04a7f385..7366862ad0 100644
--- a/lib/rake.rb
+++ b/lib/rake.rb
@@ -21,7 +21,7 @@
#++
module Rake
- VERSION = '10.4.0'
+ VERSION = '10.4.2'
end
require 'rake/version'
diff --git a/lib/rake/application.rb b/lib/rake/application.rb
index 96f907b077..bd72a2efae 100644
--- a/lib/rake/application.rb
+++ b/lib/rake/application.rb
@@ -20,9 +20,6 @@ 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
@@ -48,7 +45,6 @@ module Rake
# Initialize a Rake::Application object.
def initialize
super
- @argv = ARGV.dup
@name = 'rake'
@rakefiles = DEFAULT_RAKEFILES.dup
@rakefile = nil
@@ -77,8 +73,6 @@ module Rake
# call +top_level+ to run your top level tasks.
def run
standard_exception_handling do
- @argv = argv
-
init
load_rakefile
top_level
@@ -89,8 +83,8 @@ module Rake
def init(app_name='rake')
standard_exception_handling do
@name = app_name
- handle_options
- collect_command_line_tasks
+ args = handle_options
+ collect_command_line_tasks(args)
end
end
@@ -622,7 +616,9 @@ module Rake
end
private :select_trace_output
- # Read and handle the command line options.
+ # Read and handle the command line options. Returns the command line
+ # arguments that we didn't understand, which should (in theory) be just
+ # task names and env vars.
def handle_options # :nodoc:
options.rakelib = ['rakelib']
options.trace_output = $stderr
@@ -639,7 +635,7 @@ module Rake
standard_rake_options.each { |args| opts.on(*args) }
opts.environment('RAKEOPT')
- end.parse! @argv
+ end.parse(ARGV)
end
# Similar to the regular Ruby +require+ command, but will check
@@ -733,9 +729,14 @@ module Rake
# Collect the list of tasks on the command line. If no tasks are
# given, return a list containing only the default task.
# Environmental assignments are processed at this time as well.
- def collect_command_line_tasks # :nodoc:
+ #
+ # `args` is the list of arguments to peruse to get the list of tasks.
+ # It should be the command line that was given to rake, less any
+ # recognised command-line options, which OptionParser.parse will
+ # have taken care of already.
+ def collect_command_line_tasks(args) # :nodoc:
@top_level_tasks = []
- @argv.each do |arg|
+ args.each do |arg|
if arg =~ /^(\w+)=(.*)$/m
ENV[$1] = $2
else
diff --git a/lib/rake/dsl_definition.rb b/lib/rake/dsl_definition.rb
index b521b7dc5c..26f4ca828c 100644
--- a/lib/rake/dsl_definition.rb
+++ b/lib/rake/dsl_definition.rb
@@ -159,6 +159,8 @@ module Rake
end
# Describes the next rake task. Duplicate descriptions are discarded.
+ # Descriptions are shown with <code>rake -T</code> (up to the first
+ # sentence) and <code>rake -D</code> (the entire description).
#
# Example:
# desc "Run the Unit Tests"
diff --git a/test/rake/test_rake_application.rb b/test/rake/test_rake_application.rb
index 19e5005989..c010889176 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)
- @app.argv.clear
+ ARGV.clear
options.each do |option|
- @app.argv << option
+ ARGV << option
end
end
@@ -268,7 +268,7 @@ class TestRakeApplication < Rake::TestCase
end
def test_load_rakefile_not_found
- @app.argv.clear
+ ARGV.clear
Dir.chdir @tempdir
ENV['RAKE_SYSTEM'] = 'not_exist'
@@ -370,7 +370,7 @@ class TestRakeApplication < Rake::TestCase
# HACK no assertions
end
- def test_handle_options_should_strip_options_from_argv
+ def test_handle_options_should_not_strip_options_from_argv
assert !@app.options.trace
valid_option = '--trace'
@@ -378,7 +378,7 @@ class TestRakeApplication < Rake::TestCase
@app.handle_options
- assert !@app.argv.include?(valid_option)
+ assert 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 @app.argv.include?("sometask")
+ assert ARGV.include?("sometask")
assert @app.options.trace
end
def test_good_run
ran = false
- @app.argv << '--rakelib=""'
+ ARGV << '--rakelib=""'
@app.options.silent = true
@@ -468,7 +468,7 @@ class TestRakeApplication < Rake::TestCase
}
assert_match(/see full trace/i, err)
ensure
- @app.argv.clear
+ 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
- @app.argv.clear
+ ARGV.clear
end
def test_bad_run_with_backtrace
@@ -492,7 +492,7 @@ class TestRakeApplication < Rake::TestCase
}
refute_match(/see full trace/, err)
ensure
- @app.argv.clear
+ ARGV.clear
end
CustomError = Class.new(RuntimeError)
@@ -549,7 +549,7 @@ class TestRakeApplication < Rake::TestCase
end
assert_match(/Secondary Error/, err)
ensure
- @app.argv.clear
+ ARGV.clear
end
def test_run_with_bad_options
@@ -559,7 +559,7 @@ class TestRakeApplication < Rake::TestCase
capture_io { @app.run }
}
ensure
- @app.argv.clear
+ ARGV.clear
end
def test_standard_exception_handling_invalid_option
diff --git a/test/rake/test_rake_application_options.rb b/test/rake/test_rake_application_options.rb
index a9ae4d9c00..37adfacd7d 100644
--- a/test/rake/test_rake_application_options.rb
+++ b/test/rake/test_rake_application_options.rb
@@ -457,8 +457,8 @@ class TestRakeApplicationOptions < Rake::TestCase
throw :system_exit, :exit
end
@app.instance_eval do
- handle_options
- collect_command_line_tasks
+ args = handle_options
+ collect_command_line_tasks(args)
end
@tasks = @app.top_level_tasks
@app.options
diff --git a/test/rake/test_rake_test_task.rb b/test/rake/test_rake_test_task.rb
index 80fe9a28b4..5c4be797c6 100644
--- a/test/rake/test_rake_test_task.rb
+++ b/test/rake/test_rake_test_task.rb
@@ -97,17 +97,22 @@ class TestRakeTestTask < Rake::TestCase
end
def test_run_code_rake_default_gem
+ skip 'this ruby does not have default gems' unless
+ Gem::Specification.method_defined? :default_specifications_dir
+
default_spec = Gem::Specification.new 'rake', 0
default_spec.loaded_from = File.join Gem::Specification.default_specifications_dir, 'rake-0.gemspec'
- rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], default_spec
+ begin
+ rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], default_spec
- test_task = Rake::TestTask.new do |t|
- t.loader = :rake
- end
+ test_task = Rake::TestTask.new do |t|
+ t.loader = :rake
+ end
- assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code)
- ensure
- Gem.loaded_specs['rake'] = rake
+ assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code)
+ ensure
+ Gem.loaded_specs['rake'] = rake
+ end
end
def test_run_code_testrb_ruby_1_8_2