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