From eaae72c3e4b8531f863b514844dbc1f457d7276c Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 2 Nov 2015 13:24:24 +1100 Subject: [PATCH] improve watching logic --- lib/autospec/manager.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/autospec/manager.rb b/lib/autospec/manager.rb index 45256015d67..cf06e800682 100644 --- a/lib/autospec/manager.rb +++ b/lib/autospec/manager.rb @@ -148,8 +148,7 @@ class Autospec::Manager puts "@@@@@@@@@@@@ listen_for_changes" if @debug options = { - ignore: /^public|^lib\/autospec/, - relative_paths: true, + ignore: /^lib\/autospec/, } if @opts[:force_polling] @@ -157,11 +156,20 @@ class Autospec::Manager options[:latency] = @opts[:latency] || 3 end - Thread.start do - Listen.to('.', options) do |modified, added, _| - process_change([modified, added].flatten.compact) + path = File.expand_path(File.dirname(__FILE__) + "../../..") + + # to speed up boot we use a thread + Thread.new do + ["spec", "lib", "app", "config", "test", "vendor", "plugins"].each do |watch| + Listen.to("#{path}/#{watch}", options) do |modified, added, _| + paths = [modified, added].flatten + paths.compact! + paths.map!{|long| long[(path.length+1)..-1]} + process_change(paths) + end end end + end def process_change(files)