Class: Listen::Silencer
- Inherits:
-
Object
- Object
- Listen::Silencer
- 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 vendor/bundle]
- DEFAULT_IGNORED_EXTENSIONS =
The default list of files that get ignored.
%w[.DS_Store .tmp]
Instance Attribute Summary collapse
-
#ignore_patterns ⇒ Object
Returns the value of attribute ignore_patterns.
-
#listener ⇒ Object
Returns the value of attribute listener.
-
#only_patterns ⇒ Object
Returns the value of attribute only_patterns.
Instance Method Summary collapse
- #_default_ignore_patterns ⇒ Object private
- #_default_ignored_directories_patterns ⇒ Object private
- #_default_ignored_extensions_patterns ⇒ Object private
- #_init_ignore_patterns ⇒ Object private
- #_init_only_patterns ⇒ Object private
- #_relative_path(path) ⇒ Object private
-
#initialize(listener) ⇒ Silencer
constructor
A new instance of Silencer.
- #silenced?(path, type = 'Unknown') ⇒ Boolean
Constructor Details
#initialize(listener) ⇒ Silencer
Returns a new instance of Silencer.
13 14 15 16 17 |
# File 'lib/listen/silencer.rb', line 13 def initialize(listener) @listener = listener _init_only_patterns _init_ignore_patterns end |
Instance Attribute Details
#ignore_patterns ⇒ Object
Returns the value of attribute ignore_patterns.
11 12 13 |
# File 'lib/listen/silencer.rb', line 11 def ignore_patterns @ignore_patterns end |
#listener ⇒ Object
Returns the value of attribute listener.
11 12 13 |
# File 'lib/listen/silencer.rb', line 11 def listener @listener end |
#only_patterns ⇒ Object
Returns the value of attribute only_patterns.
11 12 13 |
# File 'lib/listen/silencer.rb', line 11 def only_patterns @only_patterns end |
Instance Method Details
#_default_ignore_patterns ⇒ Object (private)
45 46 47 |
# File 'lib/listen/silencer.rb', line 45 def _default_ignore_patterns [_default_ignored_directories_patterns, _default_ignored_extensions_patterns] end |
#_default_ignored_directories_patterns ⇒ Object (private)
49 50 51 52 |
# File 'lib/listen/silencer.rb', line 49 def _default_ignored_directories_patterns ignored_directories = DEFAULT_IGNORED_DIRECTORIES.map { |d| Regexp.escape(d) } %r{^(?:#{ignored_directories.join('|')})(/|$)} end |
#_default_ignored_extensions_patterns ⇒ Object (private)
54 55 56 57 |
# File 'lib/listen/silencer.rb', line 54 def _default_ignored_extensions_patterns ignored_extensions = DEFAULT_IGNORED_EXTENSIONS.map { |e| Regexp.escape(e) } %r{(?:#{ignored_extensions.join('|')})$} end |
#_init_ignore_patterns ⇒ Object (private)
37 38 39 40 41 42 43 |
# File 'lib/listen/silencer.rb', line 37 def _init_ignore_patterns @ignore_patterns = [] @ignore_patterns << _default_ignore_patterns unless listener.[:ignore!] @ignore_patterns << listener.[:ignore] << listener.[:ignore!] @ignore_patterns.compact! @ignore_patterns.flatten! end |
#_init_only_patterns ⇒ Object (private)
31 32 33 34 35 |
# File 'lib/listen/silencer.rb', line 31 def _init_only_patterns if listener.[:only] @only_patterns = Array(listener.[:only]) end end |
#_relative_path(path) ⇒ Object (private)
59 60 61 62 |
# File 'lib/listen/silencer.rb', line 59 def _relative_path(path) relative_paths = listener.directories.map { |dir| path.relative_path_from(dir).to_s } relative_paths.detect { |path| !path.start_with?('../') } end |
#silenced?(path, type = 'Unknown') ⇒ Boolean
19 20 21 22 23 24 25 26 27 |
# File 'lib/listen/silencer.rb', line 19 def silenced?(path, type = 'Unknown') silenced = false if only_patterns && type == 'File' silenced = !only_patterns.any? { |pattern| _relative_path(path) =~ pattern } end silenced ||= ignore_patterns.any? { |pattern| _relative_path(path) =~ pattern } end |