Class: FileSieve
- Inherits:
-
Object
- Object
- FileSieve
- Defined in:
- lib/file_sieve.rb
Overview
Traverse a directory tree looking for files with a specific extension
Instance Attribute Summary collapse
-
#found_files ⇒ Object
readonly
Returns the value of attribute found_files.
Instance Method Summary collapse
-
#de_dot(list) ⇒ Object
Clean away .
-
#initialize(directory, extension) ⇒ FileSieve
constructor
A new instance of FileSieve.
-
#sieve(directory) ⇒ Object
Recursively search the directory tree for files with @extension.
Constructor Details
#initialize(directory, extension) ⇒ FileSieve
Returns a new instance of FileSieve.
7 8 9 10 11 12 |
# File 'lib/file_sieve.rb', line 7 def initialize(directory, extension) @found_files = [] @extension = extension @search_directory = directory sieve(directory) end |
Instance Attribute Details
#found_files ⇒ Object (readonly)
Returns the value of attribute found_files.
5 6 7 |
# File 'lib/file_sieve.rb', line 5 def found_files @found_files end |
Instance Method Details
#de_dot(list) ⇒ Object
Clean away . and .. from the directory list
27 28 29 30 31 |
# File 'lib/file_sieve.rb', line 27 def de_dot(list) list.delete('.') list.delete('..') list end |
#sieve(directory) ⇒ Object
Recursively search the directory tree for files with @extension
15 16 17 18 19 20 21 22 23 24 |
# 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 |