Class: Listen::Silencer

Inherits:
Object
  • Object
show all
Includes:
Celluloid
Defined in:
lib/listen/silencer.rb

Constant Summary collapse

DEFAULT_IGNORED_DIRECTORIES =

The default list of directories that get ignored.

%w[.bundle .git .hg .rbx .svn bundle log tmp vendor/ruby]
DEFAULT_IGNORED_EXTENSIONS =

The default list of files that get ignored.

%w[.DS_Store]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Silencer

Returns a new instance of Silencer.



13
14
15
16
# File 'lib/listen/silencer.rb', line 13

def initialize(options = {})
  @options = options
  _init_patterns
end

Instance Attribute Details

#optionsObject

Returns the value of attribute options.



11
12
13
# File 'lib/listen/silencer.rb', line 11

def options
  @options
end

#patternsObject

Returns the value of attribute patterns.



11
12
13
# File 'lib/listen/silencer.rb', line 11

def patterns
  @patterns
end

Instance Method Details

#_default_ignored_directories_patternsObject (private)



36
37
38
39
# File 'lib/listen/silencer.rb', line 36

def _default_ignored_directories_patterns
  ignored_directories = DEFAULT_IGNORED_DIRECTORIES.map { |d| Regexp.escape(d) }
  %r{(?:#{ignored_directories.join('|')})}
end

#_default_ignored_extensions_patternsObject (private)



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

def _default_ignored_extensions_patterns
  ignored_extensions = DEFAULT_IGNORED_EXTENSIONS.map { |e| Regexp.escape(e) }
  %r{(?:#{ignored_extensions.join('|')})$}
end

#_default_patternsObject (private)



32
33
34
# File 'lib/listen/silencer.rb', line 32

def _default_patterns
  [_default_ignored_directories_patterns, _default_ignored_extensions_patterns]
end

#_init_patternsObject (private)



24
25
26
27
28
29
30
# File 'lib/listen/silencer.rb', line 24

def _init_patterns
  @patterns = []
  @patterns << _default_patterns unless options[:ignore!]
  @patterns << options[:ignore] << options[:ignore!]
  @patterns.compact!
  @patterns.flatten!
end

#silenced?(path) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/listen/silencer.rb', line 18

def silenced?(path)
  patterns.any? { |pattern| path.to_s =~ pattern }
end