| module SassListen |
| class Silencer |
| # The default list of directories that get ignored. |
| DEFAULT_IGNORED_DIRECTORIES = %r{^(?: |
| \.git |
| | \.svn |
| | \.hg |
| | \.rbx |
| | \.bundle |
| | bundle |
| | vendor/bundle |
| | log |
| | tmp |
| |vendor/ruby |
| )(/|$)}x |
| |
| # The default list of files that get ignored. |
| DEFAULT_IGNORED_EXTENSIONS = /(?: |
| # Kate's tmp\/swp files |
| \..*\d+\.new |
| | \.kate-swp |
| |
| # Gedit tmp files |
| | \.goutputstream-.{6} |
| |
| # Intellij files |
| | ___jb_bak___ |
| | ___jb_old___ |
| |
| # Vim swap files and write test |
| | \.sw[px] |
| | \.swpx |
| | ^4913 |
| |
| # Sed temporary files - but without actual words, like 'sedatives' |
| | (?:^ |
| sed |
| |
| (?: |
| [a-zA-Z0-9]{0}[A-Z]{1}[a-zA-Z0-9]{5} | |
| [a-zA-Z0-9]{1}[A-Z]{1}[a-zA-Z0-9]{4} | |
| [a-zA-Z0-9]{2}[A-Z]{1}[a-zA-Z0-9]{3} | |
| [a-zA-Z0-9]{3}[A-Z]{1}[a-zA-Z0-9]{2} | |
| [a-zA-Z0-9]{4}[A-Z]{1}[a-zA-Z0-9]{1} | |
| [a-zA-Z0-9]{5}[A-Z]{1}[a-zA-Z0-9]{0} |
| ) |
| ) |
| |
| # other files |
| | \.DS_Store |
| | \.tmp |
| | ~ |
| )$/x |
| |
| attr_accessor :only_patterns, :ignore_patterns |
| |
| def initialize |
| configure({}) |
| end |
| |
| def configure(options) |
| @only_patterns = options[:only] ? Array(options[:only]) : nil |
| @ignore_patterns = _init_ignores(options[:ignore], options[:ignore!]) |
| end |
| |
| # Note: relative_path is temporarily expected to be a relative Pathname to |
| # make refactoring easier (ideally, it would take a string) |
| |
| # TODO: switch type and path places - and verify |
| def silenced?(relative_path, type) |
| path = relative_path.to_s |
| |
| if only_patterns && type == :file |
| return true unless only_patterns.any? { |pattern| path =~ pattern } |
| end |
| |
| ignore_patterns.any? { |pattern| path =~ pattern } |
| end |
| |
| private |
| |
| attr_reader :options |
| |
| 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 |
| end |
| end |