Top Level Namespace

Instance Method Summary collapse

Instance Method Details

#requires(*items) ⇒ Object



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/requires.rb', line 1

def requires(*items)
  items = ['.'] if items.empty?

  calling_script = caller.first.sub(/:\d+.*/, '')
  base_dir = File.dirname calling_script

  Dir.chdir base_dir do
    items.each do |item|
      if item.include? '*'
        item += ".rb" unless item.end_with? '.rb'
        Dir["#{item}"].sort.each { |file| require "./#{file}" }
      elsif File.directory? item
        Dir["#{item}/**/*.rb"].sort.each { |file| require "./#{file}" }
      elsif File.file? "#{item}.rb" or File.file? item
        require "./#{item}"
      else
        require item
      end
    end
  end
end