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).
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.
# File lib/rake/file_task.rb, line 41 def scope_name(scope, task_name) task_name end
Is this file task needed? Yes if it doesn't exist, or if its time stamp is out of date.
# File lib/rake/file_task.rb, line 15 def needed? ! File.exist?(name) || out_of_date?(timestamp) || @application.options.build_all end
Time stamp for file task.
# File lib/rake/file_task.rb, line 20 def timestamp if File.exist?(name) File.mtime(name.to_s) else Rake::EARLY end end
Are there any prerequisites with a later time than the given time stamp?
# File lib/rake/file_task.rb, line 31 def out_of_date?(stamp) @prerequisites.any? { |n| application[n, @scope].timestamp > stamp } end