class Which

Class: Which

Public Instance Methods

process_files( aDir ) click to toggle source

Recurse through aDir for yaml files, unless it is “zz_archive”. Return: [ [filelist], [[directory,last report in directory]] ]

# File reportreader.rb, line 29
def process_files( aDir )
        #require 'find'

        unless FileTest.directory?(aDir)
                puts "Error. Invalid input for report directory: #{aDir}."
                exit
        end # unless

        @@files = []
        @@directories = []

        private
                def process_files_recurse(aDir) 
                        @@tempFiles = []
                        Dir.foreach( aDir ) { |f|
                                myPath = "#{aDir}\/#{f}"
                                if FileTest.directory?(myPath) and f != '.' and f != '..' and f != 'zz_archive'
                                         #arr = f.split('/')
                                         #arr2 = arr[arr.length - 1]
                                         #@@directories.push(arr2) 
                                         process_files_recurse(myPath)
                                else
                                        @@tempFiles.push(myPath) if f.match(%r\.yaml\Z/)
                                end
                        } # Find.find( aDir ) { |f|
                        sortedTempFiles = @@tempFiles.sort 
                        
                        @@files.push(sortedTempFiles)
                        @@directories.push([aDir[%r[^\/]+$/],sortedTempFiles[sortedTempFiles.length - 1]])
                end # def process_files_recurse (aDir) 

        process_files_recurse(aDir)

        files = @@files.sort.flatten
        directories = @@directories[0..(@@directories.length - 2)].sort_by { |e| e.nil? ? 'z' : e[0] } 

        return files,directories
end
process_files_recurse(aDir) click to toggle source
# File reportreader.rb, line 41
def process_files_recurse(aDir) 
        @@tempFiles = []
        Dir.foreach( aDir ) { |f|
                myPath = "#{aDir}\/#{f}"
                if FileTest.directory?(myPath) and f != '.' and f != '..' and f != 'zz_archive'
                         #arr = f.split('/')
                         #arr2 = arr[arr.length - 1]
                         #@@directories.push(arr2) 
                         process_files_recurse(myPath)
                else
                        @@tempFiles.push(myPath) if f.match(%r\.yaml\Z/)
                end
        } # Find.find( aDir ) { |f|
        sortedTempFiles = @@tempFiles.sort 
        
        @@files.push(sortedTempFiles)
        @@directories.push([aDir[%r[^\/]+$/],sortedTempFiles[sortedTempFiles.length - 1]])
end