class Autotest::RailsRspec

Constants

IGNORED_FOLDERS

Public Class Methods

new() click to toggle source
Calls superclass method Autotest::Rspec::new
# File lib/rspec/rails/autotest.rb, line 33
def initialize
  super
  setup_rails_rspec_mappings
end

Public Instance Methods

setup_rails_rspec_mappings() click to toggle source
# File lib/rspec/rails/autotest.rb, line 38
def setup_rails_rspec_mappings
  IGNORED_FOLDERS.each { |exception| add_exception(/^([\.\/]*)?#{exception}/) }

  clear_mappings

  add_mapping(%r{\A(test|spec)/fixtures/(.*).yml\z}) { |_, m|
    ["spec/models/#{m[2].singularize}_spec.rb"] + files_matching(%r{\Aspec\/views\/#{m[2]}/.*_spec\.rb\z})
  }
  add_mapping(%r{\Aspec/.*_spec\.rb\z}) { |filename, _|
    filename
  }
  add_mapping(%r{\Aapp/models/(.*)\.rb\z}) { |_, m|
    ["spec/models/#{m[1]}_spec.rb"]
  }
  add_mapping(%r{\Aapp/views/(.*)\z}) { |_, m|
    files_matching %r{\Aspec/views/#{m[1]}_spec.rb\z}
  }
  add_mapping(%r{\Aapp/controllers/(.*)\.rb\z}) { |_, m|
    if m[1] == 'application_controller'
      files_matching %r{\Aspec/controllers/.*_spec\.rb\z}
    else
      ["spec/controllers/#{m[1]}_spec.rb"]
    end
  }
  add_mapping(%r{\Aapp/helpers/(.*)_helper\.rb\z}) { |_, m|
    if m[1] == 'application'
      files_matching(%r{\Aspec/(views|helpers)/.*_spec\.rb\z})
    else
      ["spec/helpers/#{m[1]}_helper_spec.rb"] + files_matching(%r{\Aspec\/views\/#{m[1]}/.*_spec\.rb\z})
    end
  }
  add_mapping(%r{\Aconfig/routes\.rb\z}) {
    files_matching %r{\Aspec/(controllers|routing|views|helpers)/.*_spec\.rb\z}
  }
  add_mapping(%r{\Aconfig/database\.yml\z}) { |_, m|
    files_matching %r{\Aspec/models/.*_spec\.rb\z}
  }
  add_mapping(%r{\A(spec/(spec_helper|support/.*)|config/(boot|environment(s/test)?))\.rb\z}) {
    files_matching %r{\Aspec/(models|controllers|routing|views|helpers)/.*_spec\.rb\z}
  }
  add_mapping(%r{\Alib/(.*)\.rb\z}) { |_, m|
    ["spec/lib/#{m[1]}_spec.rb"]
  }
  add_mapping(%r{\Aapp/mailers/(.*)\.rb\z}) { |_, m|
    ["spec/mailers/#{m[1]}_spec.rb"]
  }
end