47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class PreprocessinatorHelper
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  constructor :configurator, :test_includes_extractor, :task_invoker, :file_finder, :file_path_utils
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def preprocess_includes(test, preprocess_includes_proc)
							 | 
						||
| 
								 | 
							
								    if (@configurator.project_use_test_preprocessor)
							 | 
						||
| 
								 | 
							
								      preprocessed_includes_list = @file_path_utils.form_preprocessed_includes_list_filepath(test)
							 | 
						||
| 
								 | 
							
								      preprocess_includes_proc.call( @file_finder.find_test_from_file_path(preprocessed_includes_list) )
							 | 
						||
| 
								 | 
							
								      @test_includes_extractor.parse_includes_list(preprocessed_includes_list)
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      @test_includes_extractor.parse_test_file(test)      
							 | 
						||
| 
								 | 
							
								    end  
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def assemble_mocks_list(test)
							 | 
						||
| 
								 | 
							
								    return @file_path_utils.form_mocks_source_filelist( @test_includes_extractor.lookup_raw_mock_list(test) )
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def preprocess_mockable_headers(mock_list, preprocess_file_proc)
							 | 
						||
| 
								 | 
							
								    if (@configurator.project_use_test_preprocessor)
							 | 
						||
| 
								 | 
							
								      preprocess_files_smartly(
							 | 
						||
| 
								 | 
							
								        @file_path_utils.form_preprocessed_mockable_headers_filelist(mock_list),
							 | 
						||
| 
								 | 
							
								        preprocess_file_proc ) { |file| @file_finder.find_header_file(file) }
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def preprocess_test_file(test, preprocess_file_proc)
							 | 
						||
| 
								 | 
							
								    return if (!@configurator.project_use_test_preprocessor)
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    preprocess_file_proc.call(test)
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  private ############################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def preprocess_files_smartly(file_list, preprocess_file_proc)
							 | 
						||
| 
								 | 
							
								    if (@configurator.project_use_deep_dependencies)
							 | 
						||
| 
								 | 
							
								      @task_invoker.invoke_test_preprocessed_files(file_list)
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      file_list.each { |file| preprocess_file_proc.call( yield(file) ) }
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 |