Class: TDRunnerFileFinder
- Inherits:
-
Object
- Object
- TDRunnerFileFinder
- Defined in:
- lib/tdrunner_file_finder.rb
Instance Method Summary collapse
- #file_pattern_matches?(patterns, filepath) ⇒ Boolean
- #get_files(folder, files_list = []) ⇒ Object
-
#initialize(find_file_extension) ⇒ TDRunnerFileFinder
constructor
A new instance of TDRunnerFileFinder.
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
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.( 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 |