Class: Kdeploy::FileFilter
- Inherits:
-
Object
- Object
- Kdeploy::FileFilter
- Defined in:
- lib/kdeploy/file_filter.rb
Overview
File filter for directory synchronization Supports .gitignore-style patterns
Instance Method Summary collapse
-
#filter_files(files, base_path = nil) ⇒ Object
Filter files from a directory.
-
#ignored?(file_path, base_path = nil) ⇒ Boolean
Check if a file should be ignored.
-
#initialize(ignore_patterns: []) ⇒ FileFilter
constructor
A new instance of FileFilter.
Constructor Details
#initialize(ignore_patterns: []) ⇒ FileFilter
Returns a new instance of FileFilter.
9 10 11 |
# File 'lib/kdeploy/file_filter.rb', line 9 def initialize(ignore_patterns: []) @ignore_patterns = normalize_patterns(ignore_patterns) end |
Instance Method Details
#filter_files(files, base_path = nil) ⇒ Object
Filter files from a directory
20 21 22 |
# File 'lib/kdeploy/file_filter.rb', line 20 def filter_files(files, base_path = nil) files.reject { |file| ignored?(file, base_path) } end |
#ignored?(file_path, base_path = nil) ⇒ Boolean
Check if a file should be ignored
14 15 16 17 |
# File 'lib/kdeploy/file_filter.rb', line 14 def ignored?(file_path, base_path = nil) relative_path = relative_path_for(file_path, base_path) @ignore_patterns.any? { |pattern| match_pattern?(pattern, relative_path) } end |