54 lines
1.6 KiB
Text
54 lines
1.6 KiB
Text
Autotest.add_hook :initialize do |at|
|
|
|
|
at.libs = 'lib:spec'
|
|
|
|
at.clear_mappings
|
|
|
|
at.add_mapping(%r{^lib/will_paginate/(.+)\.rb$}) { |_, match|
|
|
"spec/#{match[1]}_spec.rb"
|
|
}
|
|
at.add_mapping(%r{^spec/.+_spec\.rb$}) { |f, _| f }
|
|
at.add_mapping(%r{^spec/(finders/activerecord_test_connector.rb|database.yml|fixtures/.+)$}) {
|
|
'spec/finders/active_record_spec.rb'
|
|
}
|
|
at.add_mapping(%r{^spec/((spec_helper|shared/.+)\.rb|spec.opts)$}) {
|
|
# simply re-run all specs
|
|
at.files_matching %r{^spec/.+_spec\.rb$}
|
|
}
|
|
|
|
# add these to ignore list
|
|
%w{ .git test/ rails/ Rakefile README.rdoc init.rb .autotest
|
|
doc/ coverage/ LICENSE CHANGELOG .manifest will_paginate.gemspec examples/
|
|
spec/tasks.rake spec/console spec/rcov.opts
|
|
}.each { |path| at.add_exception path }
|
|
|
|
end
|
|
|
|
Autotest::Rspec.class_eval do
|
|
# RSpec guys forgot about `libs` in make_test_cmd
|
|
def make_test_cmd_with_libs(files_to_test)
|
|
make_test_cmd_without_libs(files_to_test).sub(' -S ', " -S -I#{libs} ")
|
|
end
|
|
|
|
alias :make_test_cmd_without_libs :make_test_cmd
|
|
alias :make_test_cmd :make_test_cmd_with_libs
|
|
|
|
# ugh, we have to monkeypatch Autotest ...
|
|
# the regexp it generates for the exception list just matches too much
|
|
#
|
|
# SOLUTION: wrap it up in another regexp that anchors the whole expression to
|
|
# the beginning of the path
|
|
def exceptions
|
|
unless defined? @exceptions then
|
|
if @exception_list.empty? then
|
|
@exceptions = nil
|
|
else
|
|
# old (BAD):
|
|
# @exceptions = Regexp.union(*@exception_list)
|
|
@exceptions = /^\.\/#{Regexp.union(*@exception_list)}/
|
|
end
|
|
end
|
|
|
|
@exceptions
|
|
end
|
|
end
|