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]
only_patterns[RW]

Public Class Methods

new() click to toggle source
# File lib/listen/silencer.rb, line 62
def initialize
  configure({})
end

Public Instance Methods

configure(options) click to toggle source
# File lib/listen/silencer.rb, line 66
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

TODO: switch type and path places - and verify

# File lib/listen/silencer.rb, line 75
def silenced?(relative_path, type)
  path = relative_path.to_s

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

Private Instance Methods

_ignore?(path) click to toggle source
# File lib/listen/silencer.rb, line 83
def _ignore?(path)
  ignore_patterns.any? { |pattern| path =~ pattern }
end
_init_ignores(ignores, overrides) click to toggle source
# File lib/listen/silencer.rb, line 91
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 87
def _only?(path)
  only_patterns.any? { |pattern| path =~ pattern }
end