90 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "par_map"
 | |
| 
 | |
| class TaskInvoker
 | |
| 
 | |
|   constructor :dependinator, :rake_utils, :rake_wrapper
 | |
| 
 | |
|   def setup
 | |
|     @test_regexs = [/^#{TEST_ROOT_NAME}:/]
 | |
|     @release_regexs = [/^#{RELEASE_ROOT_NAME}(:|$)/]
 | |
|   end
 | |
|   
 | |
|   def add_test_task_regex(regex)
 | |
|     @test_regexs << regex
 | |
|   end
 | |
| 
 | |
|   def add_release_task_regex(regex)
 | |
|     @release_regexs << regex
 | |
|   end
 | |
|   
 | |
|   def test_invoked?
 | |
|     invoked = false
 | |
|     
 | |
|     @test_regexs.each do |regex|
 | |
|       invoked = true if (@rake_utils.task_invoked?(regex))
 | |
|       break if invoked
 | |
|     end
 | |
|     
 | |
|     return invoked
 | |
|   end
 | |
|   
 | |
|   def release_invoked?
 | |
|     invoked = false
 | |
|     
 | |
|     @release_regexs.each do |regex|
 | |
|       invoked = true if (@rake_utils.task_invoked?(regex))
 | |
|       break if invoked
 | |
|     end
 | |
|     
 | |
|     return invoked
 | |
|   end
 | |
| 
 | |
|   def invoked?(regex)
 | |
|     return @rake_utils.task_invoked?(regex)
 | |
|   end
 | |
| 
 | |
|   
 | |
|   def invoke_test_mocks(mocks)
 | |
|     @dependinator.enhance_mock_dependencies( mocks )
 | |
|     mocks.each { |mock| @rake_wrapper[mock].invoke }
 | |
|   end
 | |
|   
 | |
|   def invoke_test_runner(runner)
 | |
|     @dependinator.enhance_runner_dependencies( runner )
 | |
|     @rake_wrapper[runner].invoke
 | |
|   end
 | |
| 
 | |
|   def invoke_test_shallow_include_lists(files)
 | |
|     @dependinator.enhance_shallow_include_lists_dependencies( files )
 | |
|     files.each { |file| @rake_wrapper[file].invoke }
 | |
|   end
 | |
| 
 | |
|   def invoke_test_preprocessed_files(files)
 | |
|     @dependinator.enhance_preprocesed_file_dependencies( files )
 | |
|     files.each { |file| @rake_wrapper[file].invoke }
 | |
|   end
 | |
| 
 | |
|   def invoke_test_dependencies_files(files)
 | |
|     @dependinator.enhance_dependencies_dependencies( files )
 | |
|     files.each { |file| @rake_wrapper[file].invoke }
 | |
|   end
 | |
| 
 | |
|   def invoke_test_results(result)
 | |
|     @dependinator.enhance_results_dependencies( result )
 | |
|     @rake_wrapper[result].invoke
 | |
|   end
 | |
| 
 | |
|   def invoke_release_dependencies_files(files)
 | |
|     par_map(PROJECT_COMPILE_THREADS, files) do |file|
 | |
|        @rake_wrapper[file].invoke
 | |
|     end
 | |
|   end
 | |
|   
 | |
|   def invoke_release_objects(objects)
 | |
|     par_map(PROJECT_COMPILE_THREADS, objects) do |object|
 | |
|        @rake_wrapper[object].invoke
 | |
|     end
 | |
|   end
 | |
|   
 | |
| end
 | 
