From 9109bcc45223244cc1c20938b67756610b45abf5 Mon Sep 17 00:00:00 2001 From: Rafael Martins Date: Fri, 9 Mar 2012 11:23:03 -0300 Subject: [PATCH] Add missing support file for override_task --- lib/tasks/01_support.rake | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+), 0 deletions(-) create mode 100644 lib/tasks/01_support.rake diff --git a/lib/tasks/01_support.rake b/lib/tasks/01_support.rake new file mode 100644 index 0000000..a4257ee --- /dev/null +++ b/lib/tasks/01_support.rake @@ -0,0 +1,18 @@ +# from http://metaskills.net/2010/05/26/the-alias_method_chain-of-rake-override-rake-task/ +Rake::TaskManager.class_eval do + def alias_task(fq_name) + new_name = "#{fq_name}:original" + @tasks[new_name] = @tasks.delete(fq_name) + end +end + +def alias_task(fq_name) + Rake.application.alias_task(fq_name) +end + +def override_task(*args, &block) + name, params, deps = Rake.application.resolve_args(args.dup) + fq_name = Rake.application.instance_variable_get(:@scope).dup.push(name).join(':') + alias_task(fq_name) + Rake::Task.define_task(*args, &block) +end -- libgit2 0.21.2