class Listen::Silencer

Constants

DEFAULT_IGNORED_DIRECTORIES

The default list of directories that get ignored.

DEFAULT_IGNORED_EXTENSIONS

The default list of files that get ignored.

Attributes

ignore_patterns[RW]

TODO: deprecate these mutators; use attr_reader instead

only_patterns[RW]

TODO: deprecate these mutators; use attr_reader instead

Public Class Methods

new(**options) click to toggle source
# File lib/listen/silencer.rb, line 63
def initialize(**options)
  configure(options)
end

Public Instance Methods

configure(options) click to toggle source

TODO: deprecate this mutator

# File lib/listen/silencer.rb, line 68
def configure(options)
  @only_patterns = options[:only] ? Array(options[:only]) : nil
  @ignore_patterns = _init_ignores(options[:ignore], options[:ignore!])
end
silenced?(relative_path, type) click to toggle source
# File lib/listen/silencer.rb, line 73
def silenced?(relative_path, type)
  path = relative_path.to_s   # in case it is a Pathname

  _ignore?(path) || (only_patterns && type == :file && !_only?(path))
end

Private Instance Methods

_ignore?(path) click to toggle source
# File lib/listen/silencer.rb, line 81
def _ignore?(path)
  ignore_patterns.any? { |pattern| path =~ pattern }
end
_init_ignores(ignores, overrides) click to toggle source
# File lib/listen/silencer.rb, line 89
def _init_ignores(ignores, overrides)
  patterns = []
  unless overrides
    patterns << DEFAULT_IGNORED_DIRECTORIES
    patterns << DEFAULT_IGNORED_EXTENSIONS
  end

  patterns << ignores
  patterns << overrides

  patterns.compact.flatten
end
_only?(path) click to toggle source
# File lib/listen/silencer.rb, line 85
def _only?(path)
  only_patterns.any? { |pattern| path =~ pattern }
end