Sha256: a83f5f83379ff11d01849d4ecfadc4340a44125fc9c921db851ccb1885e01c94

Contents?: true

Size: 1.41 KB

Versions: 25

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

require_relative 'file_loader'

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

  ##
  # Check directory
  # @param dirname (String) Directory name
  def self.check_dir(dirname)
    return if Dir.exist? dirname

    msg = Rainbow("[ERROR] #{dirname} directory dosn't exist!").color(:red)
    puts msg
    raise msg
  end

  ##
  # Load accepted files from dirname directory
  # @param filenames (Array) File name list
  # @param dirname (String) Base directory
  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

  ##
  # Load one input file
  # @param filepath (String) Path to input file
  # @param last (Boolean) True if it is the last filename
  def self.load_file(filepath, last = false)
    FileLoader.load(filepath)
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
asker-tool-2.5.8 lib/asker/loader/directory_loader.rb
asker-tool-2.5.7 lib/asker/loader/directory_loader.rb
asker-tool-2.5.6 lib/asker/loader/directory_loader.rb
asker-tool-2.5.5 lib/asker/loader/directory_loader.rb
asker-tool-2.5.4 lib/asker/loader/directory_loader.rb
asker-tool-2.5.3 lib/asker/loader/directory_loader.rb
asker-tool-2.5.2 lib/asker/loader/directory_loader.rb
asker-tool-2.5.1 lib/asker/loader/directory_loader.rb
asker-tool-2.5.0 lib/asker/loader/directory_loader.rb
asker-tool-2.4.5 lib/asker/loader/directory_loader.rb
asker-tool-2.4.4 lib/asker/loader/directory_loader.rb
asker-tool-2.4.3 lib/asker/loader/directory_loader.rb
asker-tool-2.4.2 lib/asker/loader/directory_loader.rb
asker-tool-2.4.1 lib/asker/loader/directory_loader.rb
asker-tool-2.4.0 lib/asker/loader/directory_loader.rb
asker-tool-2.3.4 lib/asker/loader/directory_loader.rb
asker-tool-2.3.3 lib/asker/loader/directory_loader.rb
asker-tool-2.3.2 lib/asker/loader/directory_loader.rb
asker-tool-2.3.1 lib/asker/loader/directory_loader.rb
asker-tool-2.3.0 lib/asker/loader/directory_loader.rb