Class: Kdeploy::FileFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/kdeploy/file_filter.rb

Overview

File filter for directory synchronization Supports .gitignore-style patterns

Instance Method Summary collapse

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

Returns:

  • (Boolean)


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