Sha256: 5738eff2419978dba5ea72fea08da72bf39cccc2476f2f9a2d345883bf230018

Contents?: true

Size: 549 Bytes

Versions: 6

Compression:

Stored size: 549 Bytes

Contents

class FileFinder
  
  def initialize(finder, dir)
    @finder = finder
    @dir = dir
    @filters = []
  end
  
  def add_filter(filter)
    @filters << filter
  end
  
  def find
    all_files = []
    filtered_files = []

    @finder.find(@dir) do |path|
      all_files << path
      
      keep = @filters.inject(true) { |k, filter| k && filter.filter(path)  }
      filtered_files << path if keep
    end
    
    @filters.each do |filter|
      filter.complete
    end

    return { :all => all_files, :filtered => filtered_files }
  end

end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
karl-loris-0.0.10 lib/file_finder.rb
karl-loris-0.0.11 lib/file_finder.rb
karl-loris-0.0.6 lib/file_finder.rb
karl-loris-0.0.7 lib/file_finder.rb
karl-loris-0.0.9 lib/file_finder.rb
loris-0.0.12 lib/file_finder.rb