Module: DirectoryLoader
- Defined in:
- lib/asker/loader/directory_loader.rb
Overview
Load input data from one directory
Class Method Summary collapse
-
.check_dir(dirname) ⇒ Object
Check directory.
-
.load(dirname) ⇒ Object
Load input data from directory.
-
.load_file(filepath, last = false) ⇒ Object
Load one input file.
-
.load_files(filenames, dirname) ⇒ Object
Load accepted files from dirname directory.
Class Method Details
.check_dir(dirname) ⇒ Object
Check directory
23 24 25 26 27 28 29 |
# 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) ⇒ Object
Load input data from directory
11 12 13 14 15 16 17 18 |
# 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) ⇒ Object
Load one input file
50 51 52 53 54 55 56 57 |
# 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) ⇒ Object
Load accepted files from dirname directory
35 36 37 38 39 40 41 42 43 44 |
# 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 |