module RequireFile
Handle requiring files
Public Class Methods
require(files, total = nil)
click to toggle source
# File lib/require_smasher/require_file.rb, line 7 def require(files, total = nil) raise FileNotInformedError if files.empty? results = require_files(files) results.select! { |r| r[:error] } return if results.empty? raise RequireFileError, (results.map { |result| result[:message] }) if total == results.count require(results.map { |result| result[:file] }, results.count) end
require_directories(directories)
click to toggle source
# File lib/require_smasher/require_file.rb, line 18 def require_directories(directories) raise DirNotInformedError if directories.empty? require(FileSmasher.files(directories)) end
Private Class Methods
require_files(files)
click to toggle source
# File lib/require_smasher/require_file.rb, line 26 def require_files(files) files.uniq.map do |file| require_relative File.expand_path("./#{file}") { file: file, error: false, message: nil } rescue LoadError, StandardError => e { file: file, error: true, message: "Error while requiring file #{file}: #{e.message}" } end end