class ExtendedDir

Public Class Methods

files(path, order: []) click to toggle source
# File lib/extended_dir.rb, line 14
def self.files(path, order: [])
  sort_files(path, order)
end
load_all(path, order: []) click to toggle source
# File lib/extended_dir.rb, line 22
def self.load_all(path, order: [])
  sort_files(path, order, is_ruby: true).each { |file| load file }
end
require_all(path, order: []) click to toggle source
# File lib/extended_dir.rb, line 18
def self.require_all(path, order: [])
  sort_files(path, order, is_ruby: true).each { |file| require file }
end

Private Class Methods

sort_files(path, order, is_ruby: false) click to toggle source
# File lib/extended_dir.rb, line 28
def self.sort_files(path, order, is_ruby: false)
  pattern = is_ruby ? "#{path}/**/*.rb" : "#{path}/**/*.*"
  files = Dir.glob(pattern)
  files.sort_by_with_index! do |file, i|
    index = order.find_index do |ordered_file|
      entries = Dir.glob("#{path}/#{ordered_file}")
      entries.include? file
    end
    index || order.length + i
  end
end