class Listen::Listener
Public Class Methods
new(*dirs, &block)
click to toggle source
Initializes the directories listener.
@param [String] directory the directories to listen to @param [Hash] options the listen options (see Listen::Listener::Options)
@yield [modified, added, removed] the changed files @yieldparam [Array<String>] modified the list of modified files @yieldparam [Array<String>] added the list of added files @yieldparam [Array<String>] removed the list of removed files
rubocop:disable Metrics/MethodLength
# File lib/listen/listener.rb, line 37 def initialize(*dirs, &block) options = dirs.last.is_a?(Hash) ? dirs.pop : {} @config = Config.new(options) eq_config = Event::Queue::Config.new(@config.relative?) queue = Event::Queue.new(eq_config) silencer = Silencer.new rules = @config.silencer_rules @silencer_controller = Silencer::Controller.new(silencer, rules) @backend = Backend.new(dirs, queue, silencer, @config) optimizer_config = QueueOptimizer::Config.new(@backend, silencer) pconfig = Event::Config.new( self, queue, QueueOptimizer.new(optimizer_config), @backend.min_delay_between_events, &block) @processor = Event::Loop.new(pconfig) initialize_fsm end
Public Instance Methods
ignore(regexps)
click to toggle source
# File lib/listen/listener.rb, line 124 def ignore(regexps) @silencer_controller.append_ignores(regexps) end
ignore!(regexps)
click to toggle source
# File lib/listen/listener.rb, line 128 def ignore!(regexps) @silencer_controller.replace_with_bang_ignores(regexps) end
only(regexps)
click to toggle source
# File lib/listen/listener.rb, line 132 def only(regexps) @silencer_controller.replace_with_only(regexps) end
pause()
click to toggle source
Stops invoking callbacks (messages pile up)
# File lib/listen/listener.rb, line 107 def pause transition :paused end
paused?()
click to toggle source
# File lib/listen/listener.rb, line 116 def paused? state == :paused end
processing?()
click to toggle source
processing means callbacks are called
# File lib/listen/listener.rb, line 112 def processing? state == :processing_events end
start()
click to toggle source
Starts processing events and starts adapters or resumes invoking callbacks if paused
# File lib/listen/listener.rb, line 89 def start case state when :initializing transition :backend_started transition :processing_events when :paused transition :processing_events else raise ArgumentError, "cannot start from state #{state.inspect}" end end
stop()
click to toggle source
Stops both listening for events and processing them
# File lib/listen/listener.rb, line 102 def stop transition :stopped end
stopped?()
click to toggle source
# File lib/listen/listener.rb, line 120 def stopped? state == :stopped end