Module: Fastup
- Defined in:
- lib/fastup.rb
Defined Under Namespace
Modules: XFile
Classes: SearchPath
Class Method Summary
collapse
Class Method Details
.apply! ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/fastup.rb', line 21
def self.apply!
@sp = SearchPath.new($LOAD_PATH)
@suffixes = Gem.suffixes.lazy
instance_require = Kernel.instance_method(:require)
require = Kernel.method(:require)
Kernel.send(:define_method, :require) do |name|
Fastup.require(name, instance_require.bind(self))
end
Kernel.singleton_class.send(:define_method, :require) do |name|
Fastup.require(name, require)
end
end
|
.require(name, original_require) ⇒ Object
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/fastup.rb', line 2
def self.require(name, original_require)
path = @suffixes.map{ |s| @sp.lookup(name.to_s + s) rescue nil }.find do |p|
p && File.file?(p)
end
ret = original_require.call(path || name)
if ret && ENV['FASTUP_DEBUG']
if path
warn "fastup: loaded #{name} => #{path}"
else
warn "fastup: super #{name}"
end
end
ret
end
|