Sha256: 645e0eb2d2b335a76b3b5faef18d1cf2891ed507fcddf4df060452432b7db2ca

Contents?: true

Size: 504 Bytes

Versions: 15

Compression:

Stored size: 504 Bytes

Contents

require 'rake'


module Rake
  class Application

    alias invoke_task_org invoke_task

    def invoke_task(*args, &block)
      invoke_task_org(*args, &block)
    rescue RuntimeError => e
      if e.message =~ /don't\s+know\s+.*\s+task\s+/i
        escalate_tasks
      else
        raise
      end
    end

    def escalate_tasks()
      Dir.chdir '..' do
        cmd = "rake #{ARGV.join ' '}"
        $stderr.puts "(in #{Dir.pwd}) #{cmd}"
        system cmd
      end
      exit 0
    end

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
xot-0.3.4 lib/xot/rake/escalation.rb
xot-0.3.3 lib/xot/rake/escalation.rb
xot-0.3.2 lib/xot/rake/escalation.rb
xot-0.3.1 lib/xot/rake/escalation.rb
xot-0.3 lib/xot/rake/escalation.rb
xot-0.2.1 lib/xot/rake/escalation.rb
xot-0.2 lib/xot/rake/escalation.rb
xot-0.1.42 lib/xot/rake/escalation.rb
xot-0.1.41 lib/xot/rake/escalation.rb
xot-0.1.40 lib/xot/rake/escalation.rb
xot-0.1.39 lib/xot/rake/escalation.rb
xot-0.1.38 lib/xot/rake/escalation.rb
xot-0.1.37 lib/xot/rake/escalation.rb
xot-0.1.36 lib/xot/rake/escalation.rb
xot-0.1.35 lib/xot/rake/escalation.rb