Class: Autotest::Rspec2
- Inherits:
 - 
      Autotest
        
- Object
 - Autotest
 - Autotest::Rspec2
 
 - Defined in:
 - lib/autotest/rspec2.rb
 
Overview
    Note:
    
  
this will be extracted to a separate gem when we release rspec-3.
Derived from the Autotest class, extends the autotest command to work
with RSpec.
Constant Summary
- RSPEC_EXECUTABLE =
 File.('../../../exe/rspec', __FILE__)
Instance Method Summary (collapse)
- 
  
      - (Object) consolidate_failures(failed) 
  
    
Overrides Autotest's implementation to read rspec output.
 - 
  
      - (Rspec2) initialize 
  
    constructor
    
A new instance of Rspec2.
 - 
  
      - (Object) make_test_cmd(files_to_test) 
  
    
Overrides Autotest's implementation to generate the rspec command to run.
 - 
  
      - (Object) normalize(files_to_test) 
  
    
Generates a map of filenames to Arrays for Autotest.
 - 
  
      - (Object) setup_rspec_project_mappings 
  
    
Adds conventional spec-to-file mappings to Autotest configuation.
 
Constructor Details
- (Rspec2) initialize
A new instance of Rspec2
      12 13 14 15 16 17 18 19 20 21  | 
    
      # File 'lib/autotest/rspec2.rb', line 12 def initialize super() clear_mappings setup_rspec_project_mappings # Example for Ruby 1.8: http://rubular.com/r/AOXNVDrZpx # Example for Ruby 1.9: http://rubular.com/r/85ag5AZ2jP self.failed_results_re = /^\s*\d+\).*\n\s+(?:\e\[\d*m)?Failure.*(\n(?:\e\[\d*m)?\s+#\s(.*)?:\d+(?::.*)?(?:\e\[\d*m)?)+$/m self.completed_re = /\n(?:\e\[\d*m)?\d* examples?/m end  | 
  
Instance Method Details
- (Object) consolidate_failures(failed)
Overrides Autotest's implementation to read rspec output
      37 38 39 40 41 42 43 44 45  | 
    
      # File 'lib/autotest/rspec2.rb', line 37 def consolidate_failures(failed) filters = new_hash_of_arrays failed.each do |spec, trace| if trace =~ /(.*spec\.rb)/ filters[$1] << spec end end return filters end  | 
  
- (Object) make_test_cmd(files_to_test)
Overrides Autotest's implementation to generate the rspec command to run
      48 49 50 51  | 
    
      # File 'lib/autotest/rspec2.rb', line 48 def make_test_cmd(files_to_test) files_to_test.empty? ? '' : %|#{prefix}"#{ruby}"#{suffix} -S "#{RSPEC_EXECUTABLE}" --tty #{normalize(files_to_test).keys.flatten.map { |f| %|"#{f}"|}.join(' ')}| end  | 
  
- (Object) normalize(files_to_test)
Generates a map of filenames to Arrays for Autotest
      54 55 56 57 58  | 
    
      # File 'lib/autotest/rspec2.rb', line 54 def normalize(files_to_test) files_to_test.keys.inject({}) do |result, filename| result.merge!(File.(filename) => []) end end  | 
  
- (Object) setup_rspec_project_mappings
Adds conventional spec-to-file mappings to Autotest configuation.
      24 25 26 27 28 29 30 31 32 33 34  | 
    
      # File 'lib/autotest/rspec2.rb', line 24 def setup_rspec_project_mappings add_mapping(%r%^spec/.*_spec\.rb$%) { |filename, _| filename } add_mapping(%r%^lib/(.*)\.rb$%) { |_, m| ["spec/#{m[1]}_spec.rb"] } add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) { files_matching %r%^spec/.*_spec\.rb$% } end  |