Add the has_many_polymorphs plugin
[cs356-p2-videostore.git] / vendor / plugins / has_many_polymorphs / lib / has_many_polymorphs / rake_task_redefine_task.rb
1
2 # Redefine instead of chain a Rake task
3 # http://www.bigbold.com/snippets/posts/show/2032
4
5 module Rake
6   module TaskManager
7     def redefine_task(task_class, args, &block)
8       task_name, deps = resolve_args(args)
9       task_name = task_class.scope_name(@scope, task_name)
10       deps = [deps] unless deps.respond_to?(:to_ary)
11       deps = deps.collect {|d| d.to_s }
12       task = @tasks[task_name.to_s] = task_class.new(task_name, self)
13       task.application = self
14       task.add_comment(@last_comment)
15       @last_comment = nil
16       task.enhance(deps, &block)
17       task
18     end
19   end
20   class Task
21     class << self
22       def redefine_task(args, &block)
23         Rake.application.redefine_task(self, args, &block)
24       end
25     end
26   end
27 end