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