mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rake: Import Rake 0.9.2
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3fbc9440fe
commit
d001539a05
119 changed files with 6777 additions and 4774 deletions
47
lib/rake/file_task.rb
Normal file
47
lib/rake/file_task.rb
Normal file
|
@ -0,0 +1,47 @@
|
|||
require 'rake/task.rb'
|
||||
require 'rake/early_time'
|
||||
|
||||
module Rake
|
||||
# #########################################################################
|
||||
# A FileTask is a task that includes time based dependencies. If any of a
|
||||
# FileTask's prerequisites have a timestamp that is later than the file
|
||||
# represented by this task, then the file must be rebuilt (using the
|
||||
# supplied actions).
|
||||
#
|
||||
class FileTask < Task
|
||||
|
||||
# Is this file task needed? Yes if it doesn't exist, or if its time stamp
|
||||
# is out of date.
|
||||
def needed?
|
||||
! File.exist?(name) || out_of_date?(timestamp)
|
||||
end
|
||||
|
||||
# Time stamp for file task.
|
||||
def timestamp
|
||||
if File.exist?(name)
|
||||
File.mtime(name.to_s)
|
||||
else
|
||||
Rake::EARLY
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Are there any prerequisites with a later time than the given time stamp?
|
||||
def out_of_date?(stamp)
|
||||
@prerequisites.any? { |n| application[n, @scope].timestamp > stamp}
|
||||
end
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# Task class methods.
|
||||
#
|
||||
class << self
|
||||
# Apply the scope to the task name according to the rules for this kind
|
||||
# of task. File based tasks ignore the scope when creating the name.
|
||||
def scope_name(scope, task_name)
|
||||
task_name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue