class PathParser
PathParser
parses directory and file paths into a hash with directory and file arrays.
Public Instance Methods
get_globs(files)
click to toggle source
# File lib/rstub/path_parser.rb, line 4 def get_globs(files) glob_files = check_globs(files) directories = get_directories(glob_files) all_files = get_files_from_directory(glob_files, directories) { directories: directories, files: all_files.flatten.uniq } end
Private Instance Methods
check_globs(files)
click to toggle source
# File lib/rstub/path_parser.rb, line 17 def check_globs(files) new_files = [] files.each { |file| new_files << (glob?(file) ? Dir.glob(file) : file) } new_files.flatten end
get_directories(files)
click to toggle source
# File lib/rstub/path_parser.rb, line 27 def get_directories(files) dirs = [] files.each do |file| if Dir.exist? file dirs << file dirs.concat(get_directories(Dir.glob("#{file}/*"))) end end dirs.flatten.uniq end
get_files_from_directory(files, directories)
click to toggle source
# File lib/rstub/path_parser.rb, line 38 def get_files_from_directory(files, directories) directories.each do |dir| files.delete(dir) Dir.glob("#{dir}/*").each do |file| files << file unless File.directory? file end end files end
glob?(file)
click to toggle source
# File lib/rstub/path_parser.rb, line 13 def glob?(file) !/\*/.match(file).nil? end
in_directory?(file)
click to toggle source
# File lib/rstub/path_parser.rb, line 23 def in_directory?(file) !%r{\/}.match(file).nil? end