module DirectoryLoader

Load input data from one directory

Public Class Methods

check_dir(dirname) click to toggle source

Check directory @param dirname (String) Directory name

# File lib/asker/loader/directory_loader.rb, line 23
def self.check_dir(dirname)
  return if Dir.exist? dirname

  msg = Rainbow("[ERROR] #{dirname} directory dosn't exist!").color(:red)
  Logger.verboseln msg
  raise msg
end
load(dirname) click to toggle source

Load input data from directory @param dirname (String) Directory name

# File lib/asker/loader/directory_loader.rb, line 11
def self.load(dirname)
  DirectoryLoader.check_dir(dirname)
  files = (Dir.new(dirname).entries - ['.', '..']).sort
  # Accept only HAML or XML files
  accepted = files.select { |f| %w[.xml .haml].include? File.extname(f) }
  Logger.verbose " * Input directory  = #{Rainbow(dirname).bright}"
  DirectoryLoader.load_files(accepted, dirname)
end
load_file(filepath, last = false) click to toggle source

Load one input file @param filepath (String) Path to input file @param last (Boolean) True if it is the last filename

# File lib/asker/loader/directory_loader.rb, line 50
def self.load_file(filepath, last = false)
  if last
    Logger.verbose "   └── Input file   = #{Rainbow(filepath).bright}"
  else
    Logger.verbose "   ├── Input file   = #{Rainbow(filepath).bright}"
  end
  FileLoader.load(filepath)
end
load_files(filenames, dirname) click to toggle source

Load accepted files from dirname directory @param filenames (Array) File name list @param dirname (String) Base directory

# File lib/asker/loader/directory_loader.rb, line 35
def self.load_files(filenames, dirname)
  output = { concepts: [], codes: [] }
  filenames.each do |filename|
    filepath = File.join(dirname, filename)
    data = DirectoryLoader.load_file(filepath, filename == filenames.last)
    output[:concepts] += data[:concepts]
    output[:codes] += data[:codes]
  end
  output
end