class FileSieve

Traverse a directory tree looking for files with a specific extension

Attributes

found_files[R]

Public Class Methods

new(directory, extension) click to toggle source
# File lib/file_sieve.rb, line 7
def initialize(directory, extension)
  @found_files = []
  @extension = extension
  @search_directory = directory
  sieve(directory)
end

Public Instance Methods

de_dot(list) click to toggle source

Clean away . and .. from the directory list

# File lib/file_sieve.rb, line 27
def de_dot(list)
  list.delete('.')
  list.delete('..')
  list
end
sieve(directory) click to toggle source

Recursively search the directory tree for files with @extension

# File lib/file_sieve.rb, line 15
def sieve(directory)
  de_dot(Dir.entries(directory)).each { |file|
    search = File.absolute_path(directory + File::SEPARATOR + file)
    if File.directory?(search)
      sieve(search)
    elsif file.match?(@extension)
      @found_files.push(search)
    end
  }
end