class DirGlobIgnore::IgnoreFileLists

Constants

DEFAULT_FILE_NAME

Attributes

base_dir[W]
cache[R]
ignore_file_name[W]

Public Class Methods

new(base_dir = nil) click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 9
def initialize(base_dir = nil)
  self.base_dir = base_dir
end

Public Instance Methods

base_dir() click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 17
def base_dir
  @base_dir ||= Dir.pwd
end
ignore_file?(file) click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 33
def ignore_file?(file)
  cache.values.each do |info|
    return true if info[:ignored_files].include? File.expand_path(file)
  end
  false
end
ignore_file_name() click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 13
def ignore_file_name
  @ignore_file_name ||= DEFAULT_FILE_NAME
end
load_ignore_files() click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 21
def load_ignore_files
  @cache = {}
  ignore_files.each do |ignore_file|
    cache[File.expand_path File.dirname ignore_file] = {
        ignore_file: ignore_file,
        patterns: load_ignore_file(ignore_file),
        ignored_files: []
    }
  end
  build_cached_ignore_lists
end

Private Instance Methods

build_cached_ignore_lists() click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 44
def build_cached_ignore_lists
  cache.each do |dir, info|
    info[:patterns].each do |pattern|
      info[:ignored_files].concat Dir.glob(File.join(dir, pattern), File::FNM_DOTMATCH)
    end
  end
end
ignore_files() click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 66
def ignore_files
  file_pattern = File.join base_dir, '**', ignore_file_name
  Dir.glob file_pattern, File::FNM_DOTMATCH
end
load_ignore_file(ignore_file) click to toggle source
# File lib/dir_glob_ignore/ignore_file_lists.rb, line 52
def load_ignore_file(ignore_file)
  File.readlines(ignore_file).map(&:chomp).reject do |entry|
    if entry =~ /^\s*#/
      # Ignore commented lines
      true
    elsif entry =~ /^\s*$/
      # Ignore empty lines
      true
    else
      false
    end
  end
end