lib/spring/watcher/abstract.rb in spring-1.1.0.beta1 vs lib/spring/watcher/abstract.rb in spring-1.1.0.beta2

- old
+ new

@@ -20,11 +20,11 @@ @root = File.realpath(root) @latency = latency @files = Set.new @directories = Set.new @stale = false - @io_listener = nil + @listeners = [] end def add(*items) items = items.flatten.map do |item| item = Pathname.new(item) @@ -53,18 +53,17 @@ def stale? @stale end - def mark_stale - @stale = true - @io_listener.write "." if @io_listener + def on_stale(&block) + @listeners << block end - def to_io - read, write = IO.pipe - @io_listener = write - read + def mark_stale + return if stale? + @stale = true + @listeners.each(&:call) end def restart stop start