Module: Listen

Defined in:
lib/listen/fsm.rb,
lib/listen.rb,
lib/listen/cli.rb,
lib/listen/file.rb,
lib/listen/change.rb,
lib/listen/logger.rb,
lib/listen/record.rb,
lib/listen/adapter.rb,
lib/listen/backend.rb,
lib/listen/options.rb,
lib/listen/version.rb,
lib/listen/listener.rb,
lib/listen/silencer.rb,
lib/listen/directory.rb,
lib/listen/event/loop.rb,
lib/listen/adapter/bsd.rb,
lib/listen/event/queue.rb,
lib/listen/adapter/base.rb,
lib/listen/event/config.rb,
lib/listen/record/entry.rb,
lib/listen/adapter/linux.rb,
lib/listen/adapter/config.rb,
lib/listen/adapter/darwin.rb,
lib/listen/adapter/polling.rb,
lib/listen/adapter/windows.rb,
lib/listen/event/processor.rb,
lib/listen/listener/config.rb,
lib/listen/queue_optimizer.rb,
lib/listen/silencer/controller.rb,
lib/listen/internals/thread_pool.rb,
lib/listen/record/symlink_detector.rb

Overview

Listener implementation for BSD’s ‘kqueue`.

Defined Under Namespace

Modules: Adapter, Event, FSM, Internals Classes: Backend, CLI, Change, Directory, File, Forwarder, Listener, Logger, Options, QueueOptimizer, Record, Silencer

Constant Summary collapse

VERSION =
'3.1.5'.freeze

Class Method Summary collapse

Class Method Details

.loggerObject



2
3
4
# File 'lib/listen/logger.rb', line 2

def self.logger
  @logger ||= nil
end

.logger=(logger) ⇒ Object



6
7
8
# File 'lib/listen/logger.rb', line 6

def self.logger=(logger)
  @logger = logger
end

.setup_default_logger_if_unsetObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/listen/logger.rb', line 10

def self.setup_default_logger_if_unset
  self.logger ||= ::Logger.new(STDERR).tap do |logger|
    debugging = ENV['LISTEN_GEM_DEBUGGING']
    logger.level =
      case debugging.to_s
      when /2/
        ::Logger::DEBUG
      when /true|yes|1/i
        ::Logger::INFO
      else
        ::Logger::ERROR
      end
  end
end

.stopObject

This is used by the ‘listen` binary to handle Ctrl-C



48
49
50
51
52
53
54
55
# File 'lib/listen.rb', line 48

def stop
  Internals::ThreadPool.stop
  @listeners ||= []

  # TODO: should use a mutex for this
  @listeners.each(&:stop)
  @listeners = nil
end

.to(*args) {|modified, added, removed| ... } ⇒ Listen::Listener

Listens to file system modifications on a either single directory or multiple directories.

Yields:

  • (modified, added, removed)

    the changed files

Yield Parameters:

  • modified (Array<String>)

    the list of modified files

  • added (Array<String>)

    the list of added files

  • removed (Array<String>)

    the list of removed files

Returns:



39
40
41
42
43
44
# File 'lib/listen.rb', line 39

def to(*args, &block)
  @listeners ||= []
  Listener.new(*args, &block).tap do |listener|
    @listeners << listener
  end
end