Sha256: 0f3b8a572c11fb153a381d3bc976c19ba8d1a0e9440dc4663fd680015462d22e

Contents?: true

Size: 910 Bytes

Versions: 2

Compression:

Stored size: 910 Bytes

Contents

module RequireAll
  def self.req(required_list)
    result = required_list_classified(required_list)

    RequireGem.req(result[:gems]) unless result[:gems].empty?
    RequireFile.require_files(result[:files]) unless result[:files].empty?
  end

  def self.required_list_classified(elements)
    result = { files: [], gems: [] }

    elements.uniq.each do |element|
      is_file = file?(element)
      is_directory = Dir.exist?(element)
      is_gem = !(is_file || is_directory)

      result[:files] << element if is_file
      result[:files].concat(RequireFile.files([element])) if is_directory
      result[:gems] << element if is_gem
    end
    result
  end

  def self.file?(element)
    file = File.expand_path("./#{element}")
    return true if File.file?(file)
    return false if element.include?('.')
    File.file?("#{file}.rb")
  end

  private_class_method :required_list_classified, :file?
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
require_smasher-0.3.1 lib/require_smasher/require_all.rb
require_smasher-0.3.0 lib/require_smasher/require_all.rb