diff options
Diffstat (limited to 'lib/rake/file_creation_task.rb')
-rw-r--r-- | lib/rake/file_creation_task.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/rake/file_creation_task.rb b/lib/rake/file_creation_task.rb new file mode 100644 index 0000000000..c87e2192bb --- /dev/null +++ b/lib/rake/file_creation_task.rb @@ -0,0 +1,24 @@ +require 'rake/file_task' +require 'rake/early_time' + +module Rake + + # A FileCreationTask is a file task that when used as a dependency will be + # needed if and only if the file has not been created. Once created, it is + # not re-triggered if any of its dependencies are newer, nor does trigger + # any rebuilds of tasks that depend on it whenever it is updated. + # + class FileCreationTask < FileTask + # Is this file task needed? Yes if it doesn't exist. + def needed? + ! File.exist?(name) + end + + # Time stamp for file creation task. This time stamp is earlier + # than any other time stamp. + def timestamp + Rake::EARLY + end + end + +end |