def notify_watches(modified, added, removed)
project_path = Compass.configuration.project_path
files = {:modified => modified,
:added => added,
:removed => removed}
run_once, run_each = Compass.configuration.watches.partition {|w| w.run_once_per_changeset?}
run_once.each do |watcher|
if file = files.values.flatten.detect{|f| watcher.match?(f) }
action = files.keys.detect{|k| files[k].include?(file) }
watcher.run_callback(project_path, relative_to(file, project_path), action)
end
end
run_each.each do |watcher|
files.each do |action, list|
list.each do |file|
if watcher.match?(file)
watcher.run_callback(project_path, relative_to(file, project_path), action)
end
end
end
end
end