81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
 | 
						|
class String
 | 
						|
  # reformat a multiline string to have given number of whitespace columns;
 | 
						|
  # helpful for formatting heredocs
 | 
						|
  def left_margin(margin=0)
 | 
						|
    non_whitespace_column = 0
 | 
						|
    new_lines = []
 | 
						|
    
 | 
						|
    # find first line with non-whitespace and count left columns of whitespace
 | 
						|
    self.each_line do |line|
 | 
						|
      if (line =~ /^\s*\S/)
 | 
						|
        non_whitespace_column = $&.length - 1
 | 
						|
        break
 | 
						|
      end
 | 
						|
    end
 | 
						|
    
 | 
						|
    # iterate through each line, chopping off leftmost whitespace columns and add back the desired whitespace margin
 | 
						|
    self.each_line do |line|
 | 
						|
      columns = []
 | 
						|
      margin.times{columns << ' '}
 | 
						|
      # handle special case of line being narrower than width to be lopped off
 | 
						|
      if (non_whitespace_column < line.length)
 | 
						|
        new_lines << "#{columns.join}#{line[non_whitespace_column..-1]}"
 | 
						|
      else
 | 
						|
        new_lines << "\n"
 | 
						|
      end
 | 
						|
    end
 | 
						|
    
 | 
						|
    return new_lines.join
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
class Plugin
 | 
						|
  attr_reader :name, :environment
 | 
						|
  attr_accessor :plugin_objects
 | 
						|
 | 
						|
  def initialize(system_objects, name)
 | 
						|
    @environment = []
 | 
						|
    @ceedling = system_objects
 | 
						|
    @name = name
 | 
						|
    self.setup
 | 
						|
  end
 | 
						|
 | 
						|
  def setup; end
 | 
						|
 | 
						|
  # mock generation
 | 
						|
  def pre_mock_generate(arg_hash); end
 | 
						|
  def post_mock_generate(arg_hash); end
 | 
						|
 | 
						|
  # test runner generation
 | 
						|
  def pre_runner_generate(arg_hash); end
 | 
						|
  def post_runner_generate(arg_hash); end
 | 
						|
 | 
						|
  # compilation (test or source)
 | 
						|
  def pre_compile_execute(arg_hash); end
 | 
						|
  def post_compile_execute(arg_hash); end
 | 
						|
 | 
						|
  # linking (test or source)
 | 
						|
  def pre_link_execute(arg_hash); end
 | 
						|
  def post_link_execute(arg_hash); end
 | 
						|
 | 
						|
  # test fixture execution
 | 
						|
  def pre_test_fixture_execute(arg_hash); end
 | 
						|
  def post_test_fixture_execute(arg_hash); end
 | 
						|
 | 
						|
  # test task
 | 
						|
  def pre_test; end
 | 
						|
  def post_test; end
 | 
						|
 | 
						|
  # release task
 | 
						|
  def pre_release; end
 | 
						|
  def post_release; end
 | 
						|
 | 
						|
  # whole shebang (any use of Ceedling)
 | 
						|
  def pre_build; end
 | 
						|
  def post_build; end
 | 
						|
  
 | 
						|
  def summary; end
 | 
						|
 | 
						|
end
 |