class Rake::FileTask

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).

Private Class Methods

scope_name(scope, task_name) click to toggle source

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 49
def scope_name(scope, task_name)
  Rake.from_pathname(task_name)
end

Public Instance Methods

needed?() click to toggle source

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 16
def needed?
  !File.exist?(name) || out_of_date?(timestamp) || @application.options.build_all
end
timestamp() click to toggle source

Time stamp for file task.

# File lib/rake/file_task.rb, line 21
def timestamp
  if File.exist?(name)
    File.mtime(name.to_s)
  else
    Rake::LATE
  end
end

Private Instance Methods

out_of_date?(stamp) click to toggle source

Are there any prerequisites with a later time than the given time stamp?

# File lib/rake/file_task.rb, line 32
def out_of_date?(stamp)
  all_prerequisite_tasks.any? { |prereq|
    prereq_task = application[prereq, @scope]
    if prereq_task.instance_of?(Rake::FileTask)
      prereq_task.timestamp > stamp || @application.options.build_all
    else
      prereq_task.timestamp > stamp
    end
  }
end