Sha256: 89b71fe5cb1fd11c1141d916c7c1d9c3080241f446284b551c330ae69cdee0e7

Contents?: true

Size: 1.11 KB

Versions: 9

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

require_relative "file_loader"
require_relative "../logger"

module DirectoryLoader
  ##
  # Load input data from one directory
  # @param dirname (String) Directory name
  def self.call(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) }
    DirectoryLoader.load_files(accepted, dirname)
  end

  def self.check_dir(dirname)
    return if Dir.exist? dirname

    Logger.error "DirectoryLoader: #{dirname} directory dosn't exist!"
    exit 1
  end

  ##
  # Load files from dirname directory
  # @param filenames (Array) File name list
  # @param dirname (String) Base directory
  def self.load_files(filenames, dirname)
    data = {concepts: [], codes: [], problems: []}
    filenames.each do |filename|
      filepath = File.join(dirname, filename)
      loaded = FileLoader.call(filepath)
      data[:concepts] += loaded[:concepts]
      data[:codes] += loaded[:codes]
      data[:problems] += loaded[:problems]
    end
    data
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
asker-tool-2.9.4 lib/asker/loader/directory_loader.rb
asker-tool-2.9.3 lib/asker/loader/directory_loader.rb
asker-tool-2.9.2 lib/asker/loader/directory_loader.rb
asker-tool-2.9.1 lib/asker/loader/directory_loader.rb
asker-tool-2.9.0 lib/asker/loader/directory_loader.rb
asker-tool-2.8.0 lib/asker/loader/directory_loader.rb
asker-tool-2.7.2 lib/asker/loader/directory_loader.rb
asker-tool-2.7.1 lib/asker/loader/directory_loader.rb
asker-tool-2.7.0 lib/asker/loader/directory_loader.rb