summaryrefslogtreecommitdiff
path: root/lib/rake/task_manager.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-15 03:07:37 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-15 03:07:37 +0000
commit6361928083d01906ab9d8782b6533b4ed7c834a0 (patch)
tree172488be8a74c9313d35b9cd7d53999cd55f561d /lib/rake/task_manager.rb
parent031e1570b934d6b3a1e17ae8eb78a44dac8186d3 (diff)
* lib/rake.rb, lib/rake/*.rb: Upgrade to rake-10.3.2
[fix GH-668] * test/rake/*.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rake/task_manager.rb')
-rw-r--r--lib/rake/task_manager.rb29
1 files changed, 21 insertions, 8 deletions
diff --git a/lib/rake/task_manager.rb b/lib/rake/task_manager.rb
index 06c243a7b2..af53e3f586 100644
--- a/lib/rake/task_manager.rb
+++ b/lib/rake/task_manager.rb
@@ -4,9 +4,12 @@ module Rake
module TaskManager
# Track the last comment made in the Rakefile.
attr_accessor :last_description
- alias :last_comment :last_description # Backwards compatibility
- def initialize
+ # TODO: Remove in Rake 11
+
+ alias :last_comment :last_description # :nodoc: Backwards compatibility
+
+ def initialize # :nodoc:
super
@tasks = Hash.new
@rules = Array.new
@@ -14,14 +17,22 @@ module Rake
@last_description = nil
end
- def create_rule(*args, &block)
+ def create_rule(*args, &block) # :nodoc:
pattern, args, deps = resolve_args(args)
pattern = Regexp.new(Regexp.quote(pattern) + '$') if String === pattern
@rules << [pattern, args, deps, block]
end
- def define_task(task_class, *args, &block)
+ def define_task(task_class, *args, &block) # :nodoc:
task_name, arg_names, deps = resolve_args(args)
+
+ original_scope = @scope
+ if String === task_name and
+ not task_class.ancestors.include? Rake::FileTask then
+ task_name, *definition_scope = *(task_name.split(":").reverse)
+ @scope = Scope.make(*(definition_scope + @scope.to_a))
+ end
+
task_name = task_class.scope_name(@scope, task_name)
deps = [deps] unless deps.respond_to?(:to_ary)
deps = deps.map { |d| d.to_s }
@@ -32,6 +43,8 @@ module Rake
task.add_description(get_description(task))
end
task.enhance(deps, &block)
+ ensure
+ @scope = original_scope
end
# Lookup a task. Return an existing task if found, otherwise
@@ -49,7 +62,7 @@ module Rake
fail "Don't know how to build task '#{task_name}'"
end
- def synthesize_file_task(task_name)
+ def synthesize_file_task(task_name) # :nodoc:
return nil unless File.exist?(task_name)
define_task(Rake::FileTask, task_name)
end
@@ -226,7 +239,7 @@ module Rake
"_anon_#{@seed}"
end
- def trace_rule(level, message)
+ def trace_rule(level, message) # :nodoc:
options.trace_output.puts "#{" " * level}#{message}" if
Rake.application.options.trace_rules
end
@@ -265,7 +278,7 @@ module Rake
task_name.ext(ext)
when String
ext
- when Proc
+ when Proc, Method
if ext.arity == 1
ext.call(task_name)
else
@@ -289,7 +302,7 @@ module Rake
end
class << self
- attr_accessor :record_task_metadata
+ attr_accessor :record_task_metadata # :nodoc:
TaskManager.record_task_metadata = false
end
end