Sha256: 251bede3166ef5a600ce3bc6c55f9d3d9b7f733a61df8ddcc9fc560d0e553a82

Contents?: true

Size: 531 Bytes

Versions: 7

Compression:

Stored size: 531 Bytes

Contents

# -*- coding: utf-8 -*-


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

7 entries across 7 versions & 1 rubygems

Version Path
xot-0.1.21 lib/xot/rake/escalation.rb
xot-0.1.20 lib/xot/rake/escalation.rb
xot-0.1.19 lib/xot/rake/escalation.rb
xot-0.1.16 lib/xot/rake/escalation.rb
xot-0.1.15 lib/xot/rake/escalation.rb
xot-0.1.14 lib/xot/rake/escalation.rb
xot-0.1.13 lib/xot/rake/escalation.rb