Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

65 lines (52 sloc) 1.274 kb
require 'guard/guard'
module ::Guard
class Bacon < Guard
def run_all
system "bundle exec bacon -Itest -q -a"
puts
true
end
def run_spec(path)
if File.exists?(path)
@success &&= system "bundle exec bacon -Itest -q #{path}"
puts
end
end
def file_changed(path)
run_spec(path)
end
def run_on_changes(paths)
@success = true
paths.delete(:all)
paths.each do |path|
file_changed(path)
end
run_all if @success
end
end
end
guard 'bacon' do
def deduce_test_from(token)
"test/test_#{token}.rb"
end
Dir['lib/pry/*.rb'].each do |rb|
rb[%r(lib/pry/(.+)\.rb$)]
test_rb = deduce_test_from $1
if File.exists?(test_rb)
watch(rb) { test_rb }
else
exempt = %w(
commands
version
).map {|token| deduce_test_from token}
puts 'Missing ' + test_rb if
ENV['WANT_TEST_COMPLAINTS'] and not exempt.include?(test_rb)
end
end
watch(%r{^lib/pry/commands/([^.]+)\.rb}) { |m| "test/test_commands/test_#{m[1]}.rb" }
# If no such mapping exists, just run all of them
watch(%r{^lib/}) { :all }
# If we modified one test file, run it
watch(%r{^test.*/test_.+\.rb$})
end
# vim:ft=ruby
Jump to Line
Something went wrong with that request. Please try again.