Class: TDRunnerFileFinder

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

Instance Method Summary collapse

Constructor Details

#initialize(find_file_extension) ⇒ TDRunnerFileFinder

Returns a new instance of TDRunnerFileFinder.



22
23
24
25
# File 'lib/tdrunner_file_finder.rb', line 22

def initialize(find_file_extension)
  @exclude_folders_pattern = [ '.*', '_*' ]
  @include_files_pattern = [ "*/*.#{find_file_extension}" ]
end

Instance Method Details

#file_pattern_matches?(patterns, filepath) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/tdrunner_file_finder.rb', line 26

def file_pattern_matches?( patterns, filepath )
  patterns.each{ | pattern | return true if File.fnmatch( pattern, filepath ) }; false
end

#get_files(folder, files_list = []) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/tdrunner_file_finder.rb', line 29

def get_files( folder, files_list = [] )
  if File.directory?( folder )
    folder = File.expand_path( folder )
    Dir.open( folder ).each { | entry |
      # create full filepath
      filepath = "#{ folder }/#{ entry }"
      # file: add file to required files list
      files_list.push( filepath ) if file_pattern_matches?( @include_files_pattern, filepath )
      # directory: go deeper in folder stack structure if exclusion pattern does not meet
      files_list |= get_files("#{ filepath }/") if File.directory?( filepath ) and not file_pattern_matches?( @exclude_folders_pattern, entry )
    }
    files_list
  else
    folder
  end
end