module Speci::Listener
Public Instance Methods
start()
click to toggle source
# File lib/speci/listener.rb, line 5 def start @listener = Listen.to(Speci.root_path) @listener = @listener.ignore(%r{^.git}) @listener = @listener.filter(/\.rb$/) @listener = @listener.latency(0.5) @listener = @listener.polling_fallback_message(false) @listener = @listener.change do |files| begin files.delete_if {|file| file == __FILE__ } files.each do |file| file = file.sub(Speci.root_path, '') if file == "spec/spec_helper.rb" puts "Force reload #{file}" Speci.restart! elsif file.start_with?('spec/') Speci.specs_to_run << file unless Speci.specs_to_run.include?(file) end end puts "Files changed #{files.inspect}" Speci.reload_rails if files.select {|f| !f.start_with?('spec/') }.size > 0 Speci.reload_rails! end rescue => e puts e.message puts e.backtrace end end puts 'start listener' @listener.start end