module Middleman::PreviewServer
def start_file_watcher
def start_file_watcher return if @options[:"disable-watcher"] first_run = !@listener if first_run # Watcher Library require "listen" @listener = Listen.to(Dir.pwd, :relative_paths => true) end @listener.change do |modified, added, removed| added_and_modified = (modified + added) # See if the changed file is config.rb or lib/*.rb if needs_to_reload?(added_and_modified) || needs_to_reload?(removed) reload else added_and_modified.each do |path| app.files.did_change(path) end removed.each do |path| app.files.did_delete(path) end end end # Don't block this thread @listener.start(false) if first_run end