Module: Kernel

Defined in:
lib/task_tempest/require.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.record_requires!Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/task_tempest/require.rb', line 15

def self.record_requires!
  if Thread.current[:required_files] == nil
    Thread.current[:required_files] = []
    yield
    required_files = Thread.current[:required_files]
    Thread.current[:required_files] = nil
    required_files
  else # Reentrant case.
    yield
    Thread.current[:required_files]
  end
end

Instance Method Details

#original_requireObject



4
# File 'lib/task_tempest/require.rb', line 4

alias_method :original_require, :require

#require(file) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/task_tempest/require.rb', line 6

def require(file)
  without_ext = file.sub /(\.rb$)|(\.bundle$)/, ""
  files = %w[.rb .bundle].collect{ |ext| without_ext + ext }
  already_required = !($".to_set & files.to_set).empty?
  required_files = Thread.current[:required_files]
  required_files << file if required_files and not already_required
  original_require(file)
end