# A sample Guardfile # More info at https://github.com/guard/guard#readme guard :tap, command: 'carton exec -Ilib -- perl' do watch %r{^t/.*\.t$} watch %r{^(lib/.*\.pm)$} do |m| modified_file = m[0] all_test_files = Dir.glob('t/**/**.t') all_test_files.sort_by{ |test_file| # sort by similarity of path a = test_file b = modified_file delimiter = %r{[/_\-\.]} a_fragments = a.split(delimiter) b_fragments = b.split(delimiter) (a_fragments + b_fragments).uniq.length.to_f / (a_fragments + b_fragments).length.to_f }.first end end