mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 d001539a05
			
		
	
	
		d001539a05
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 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
 | |
| 
 |