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