Sha256: 2e57f5b241e055748d538f96e48329e60429453517e13d318a506ec42f0894a8
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
require 'guard' require 'guard/guard' require 'guard/version' require 'rake' module Guard class Rake < Guard class << self attr_accessor :rakefile_loaded end def initialize(watchers=[], options={}) super @options = { :run_on_start => true, :run_on_all => true, :task_args => [] }.update(options) @task = @options[:task] end def start UI.info "Starting guard-rake #{@task}" load_rakefile unless self.class.rakefile_loaded run_rake_task if @options[:run_on_start] true end def stop UI.info "Stopping guard-rake #{@task}" true end def reload stop start end def run_all run_rake_task if @options[:run_on_all] end if ::Guard::VERSION < "1.1" def run_on_change(paths) run_rake_task(paths) end else def run_on_changes(paths) run_rake_task(paths) end end def run_rake_task(paths=[]) UI.info "running #{@task}" ::Rake::Task.tasks.each { |t| t.reenable } ::Rake::Task[@task].invoke(*@options[:task_args], paths) rescue Exception => e UI.error "#{self.class.name} failed to run rake task <#{@task}>, exception was:\n\t#{e.class}: #{e.message}" UI.debug "\n#{e.backtrace.join("\n")}" throw :task_has_failed end def load_rakefile ::Rake.application.init ::Rake.application.load_rakefile self.class.rakefile_loaded = true end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
guard-rake-0.0.8 | lib/guard/rake.rb |