* 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
This commit is contained in:
hsbt 2014-12-06 00:22:51 +00:00
parent e70210cad6
commit e2bbfaa67c
7 changed files with 47 additions and 34 deletions

View File

@ -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> Sat Dec 6 06:48:03 2014 Eric Wong <e@80x24.org>
* compile.c (rb_iseq_build_from_ary): remove misc handling * compile.c (rb_iseq_build_from_ary): remove misc handling

View File

@ -21,7 +21,7 @@
#++ #++
module Rake module Rake
VERSION = '10.4.0' VERSION = '10.4.2'
end end
require 'rake/version' require 'rake/version'

View File

@ -20,9 +20,6 @@ module Rake
include TaskManager include TaskManager
include TraceOutput include TraceOutput
# The command-line arguments rake is using (defaults to ARGV)
attr_reader :argv # :nodoc:
# The name of the application (typically 'rake') # The name of the application (typically 'rake')
attr_reader :name attr_reader :name
@ -48,7 +45,6 @@ module Rake
# Initialize a Rake::Application object. # Initialize a Rake::Application object.
def initialize def initialize
super super
@argv = ARGV.dup
@name = 'rake' @name = 'rake'
@rakefiles = DEFAULT_RAKEFILES.dup @rakefiles = DEFAULT_RAKEFILES.dup
@rakefile = nil @rakefile = nil
@ -77,8 +73,6 @@ module Rake
# call +top_level+ to run your top level tasks. # call +top_level+ to run your top level tasks.
def run def run
standard_exception_handling do standard_exception_handling do
@argv = argv
init init
load_rakefile load_rakefile
top_level top_level
@ -89,8 +83,8 @@ module Rake
def init(app_name='rake') def init(app_name='rake')
standard_exception_handling do standard_exception_handling do
@name = app_name @name = app_name
handle_options args = handle_options
collect_command_line_tasks collect_command_line_tasks(args)
end end
end end
@ -622,7 +616,9 @@ module Rake
end end
private :select_trace_output 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: def handle_options # :nodoc:
options.rakelib = ['rakelib'] options.rakelib = ['rakelib']
options.trace_output = $stderr options.trace_output = $stderr
@ -639,7 +635,7 @@ module Rake
standard_rake_options.each { |args| opts.on(*args) } standard_rake_options.each { |args| opts.on(*args) }
opts.environment('RAKEOPT') opts.environment('RAKEOPT')
end.parse! @argv end.parse(ARGV)
end end
# Similar to the regular Ruby +require+ command, but will check # 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 # Collect the list of tasks on the command line. If no tasks are
# given, return a list containing only the default task. # given, return a list containing only the default task.
# Environmental assignments are processed at this time as well. # 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 = [] @top_level_tasks = []
@argv.each do |arg| args.each do |arg|
if arg =~ /^(\w+)=(.*)$/m if arg =~ /^(\w+)=(.*)$/m
ENV[$1] = $2 ENV[$1] = $2
else else

View File

@ -159,6 +159,8 @@ module Rake
end end
# Describes the next rake task. Duplicate descriptions are discarded. # 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: # Example:
# desc "Run the Unit Tests" # desc "Run the Unit Tests"

View File

@ -10,9 +10,9 @@ class TestRakeApplication < Rake::TestCase
end end
def setup_command_line(*options) def setup_command_line(*options)
@app.argv.clear ARGV.clear
options.each do |option| options.each do |option|
@app.argv << option ARGV << option
end end
end end
@ -268,7 +268,7 @@ class TestRakeApplication < Rake::TestCase
end end
def test_load_rakefile_not_found def test_load_rakefile_not_found
@app.argv.clear ARGV.clear
Dir.chdir @tempdir Dir.chdir @tempdir
ENV['RAKE_SYSTEM'] = 'not_exist' ENV['RAKE_SYSTEM'] = 'not_exist'
@ -370,7 +370,7 @@ class TestRakeApplication < Rake::TestCase
# HACK no assertions # HACK no assertions
end end
def test_handle_options_should_strip_options_from_argv def test_handle_options_should_not_strip_options_from_argv
assert !@app.options.trace assert !@app.options.trace
valid_option = '--trace' valid_option = '--trace'
@ -378,7 +378,7 @@ class TestRakeApplication < Rake::TestCase
@app.handle_options @app.handle_options
assert !@app.argv.include?(valid_option) assert ARGV.include?(valid_option)
assert @app.options.trace assert @app.options.trace
end end
@ -406,14 +406,14 @@ class TestRakeApplication < Rake::TestCase
setup_command_line("--trace", "sometask") setup_command_line("--trace", "sometask")
@app.handle_options @app.handle_options
assert @app.argv.include?("sometask") assert ARGV.include?("sometask")
assert @app.options.trace assert @app.options.trace
end end
def test_good_run def test_good_run
ran = false ran = false
@app.argv << '--rakelib=""' ARGV << '--rakelib=""'
@app.options.silent = true @app.options.silent = true
@ -468,7 +468,7 @@ class TestRakeApplication < Rake::TestCase
} }
assert_match(/see full trace/i, err) assert_match(/see full trace/i, err)
ensure ensure
@app.argv.clear ARGV.clear
end end
def test_bad_run_with_trace def test_bad_run_with_trace
@ -479,7 +479,7 @@ class TestRakeApplication < Rake::TestCase
} }
refute_match(/see full trace/i, err) refute_match(/see full trace/i, err)
ensure ensure
@app.argv.clear ARGV.clear
end end
def test_bad_run_with_backtrace def test_bad_run_with_backtrace
@ -492,7 +492,7 @@ class TestRakeApplication < Rake::TestCase
} }
refute_match(/see full trace/, err) refute_match(/see full trace/, err)
ensure ensure
@app.argv.clear ARGV.clear
end end
CustomError = Class.new(RuntimeError) CustomError = Class.new(RuntimeError)
@ -549,7 +549,7 @@ class TestRakeApplication < Rake::TestCase
end end
assert_match(/Secondary Error/, err) assert_match(/Secondary Error/, err)
ensure ensure
@app.argv.clear ARGV.clear
end end
def test_run_with_bad_options def test_run_with_bad_options
@ -559,7 +559,7 @@ class TestRakeApplication < Rake::TestCase
capture_io { @app.run } capture_io { @app.run }
} }
ensure ensure
@app.argv.clear ARGV.clear
end end
def test_standard_exception_handling_invalid_option def test_standard_exception_handling_invalid_option

View File

@ -457,8 +457,8 @@ class TestRakeApplicationOptions < Rake::TestCase
throw :system_exit, :exit throw :system_exit, :exit
end end
@app.instance_eval do @app.instance_eval do
handle_options args = handle_options
collect_command_line_tasks collect_command_line_tasks(args)
end end
@tasks = @app.top_level_tasks @tasks = @app.top_level_tasks
@app.options @app.options

View File

@ -97,17 +97,22 @@ class TestRakeTestTask < Rake::TestCase
end end
def test_run_code_rake_default_gem 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 = Gem::Specification.new 'rake', 0
default_spec.loaded_from = File.join Gem::Specification.default_specifications_dir, 'rake-0.gemspec' 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| test_task = Rake::TestTask.new do |t|
t.loader = :rake t.loader = :rake
end
assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code)
ensure
Gem.loaded_specs['rake'] = rake
end end
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 def test_run_code_testrb_ruby_1_8_2