Sha256: ddb4e6dcca1a41961999a3b650b0189f20f010cfc7dba86fbc847b8a665b7aa5

Contents?: true

Size: 720 Bytes

Versions: 12

Compression:

Stored size: 720 Bytes

Contents

require 'rake'
  
# We want to provide a way to alias tasks so we can hook our custom logic
# into the existing rails framework. For more information and usage, see:
# http://www.metaskills.net/2010/5/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

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
secondbase-0.6.0 lib/secondbase/rake_method_chain.rb
secondbase-0.5.0 lib/secondbase/rake_method_chain.rb
secondbase-0.4.3 lib/secondbase/rake_method_chain.rb
secondbase-0.4.2 lib/secondbase/rake_method_chain.rb
secondbase-0.4.1 lib/secondbase/rake_method_chain.rb
secondbase-0.4.0 lib/secondbase/rake_method_chain.rb
secondbase-0.3.3 lib/secondbase/rake_method_chain.rb
secondbase-0.3.2 lib/secondbase/rake_method_chain.rb
secondbase-0.3.1 lib/secondbase/rake_method_chain.rb
secondbase-0.3.0 lib/secondbase/rake_method_chain.rb
secondbase-0.2.0 lib/secondbase/rake_method_chain.rb
secondbase-0.1.0 lib/secondbase/rake_method_chain.rb