class Rake::FileTask - rake: Ruby Standard Library Documentation

# 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 rake-13.2.1/lib/rake/file_task.rb, line 53
    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 rake-13.2.1/lib/rake/file_task.rb, line 16
    def needed?
      begin
        out_of_date?(File.mtime(name)) || @application.options.build_all
      rescue Errno::ENOENT
        true
      end
    end

timestamp() click to toggle source

Time stamp for file task.

    # File rake-13.2.1/lib/rake/file_task.rb, line 25
    def timestamp
      begin
        File.mtime(name)
      rescue Errno::ENOENT
        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 rake-13.2.1/lib/rake/file_task.rb, line 36
    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