Sha256: 0703fa95cbf3b1083d1964b7f36a9c5af35ef68adfe2d97bca62785fa23f1439

Contents?: true

Size: 560 Bytes

Versions: 5

Compression:

Stored size: 560 Bytes

Contents

require 'rake/tasklib'

module Rake
  # A task whick is no longer needed after its first invocation
  class OnceTask < Task
    attr_accessor :invoked
    attr_accessor :timestamp

    def self.define_task(*args, &block)
      task = super(*args, &block)
      task.timestamp = nil
      task.invoked = false
      task
    end

    def execute(*args)
      @timestamp = Time.now
      @invoked = true
      super(*args)
    end

    def needed?
      ! @invoked
    end
  end
end

def once_task(*args, &block)
  Rake::OnceTask.define_task(*args, &block)
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rake-builder-0.10.1 lib/rake/once_task.rb
rake-builder-0.9.2 lib/rake/once_task.rb
rake-builder-0.9.1 lib/rake/once_task.rb
rake-builder-0.9.0 lib/rake/once_task.rb
rake-builder-0.8.0 lib/rake/once_task.rb