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

63 lines (55 sloc) 1.324 kb
require 'guard/guard'
module ::Guard
class Bacon < Guard
def run_all
system "rake spec"
puts
true
end
def run_on_changes(paths)
paths.delete('some_lib')
puts "Running: #{paths.join ' '}"
if paths.size.zero?
warn 'Running all tests'
system 'rake recspec'
else
paths.each do |path|
warn "Running #{path}"
system "rake spec run=#{path}" or return
warn "\e[32;1mNice!!\e[0m Now running all specs, just to be sure."
run_all
end
end
end
end
end
guard 'bacon' do
def deduce_spec_from(token)
%W(
spec/#{token}_spec.rb
spec/pry_#{token}_spec.rb
spec/commands/#{token}_spec.rb
).each do |e|
return e if File.exists? e
end
nil
end
Dir['lib/pry/**/*.rb'].each do |rb|
rb[%r(lib/pry/(.+)\.rb$)]
spec_rb = deduce_spec_from($1)
if spec_rb
# run as 'bundle exec guard -d' to see these.
::Guard::UI.debug "'#{rb}' maps to '#{spec_rb}'"
else
::Guard::UI.debug "No map, so run all for: '#{rb}'"
end
next unless spec_rb
watch(rb) do |m| spec_rb end
end
watch(%r{^lib/.+\.rb$}) do |m|
return if deduce_spec_from(m[0])
'some_lib'
end
watch(%r{^spec/.+\.rb$}) do |m| m end
end
# vim:ft=ruby
Jump to Line
Something went wrong with that request. Please try again.