class_loader 3.0.2 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/class_loader.rb +7 -2
- data/lib/class_loader/class_loader.rb +4 -4
- metadata +1 -1
data/lib/class_loader.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
autoload :ClassLoader, 'class_loader/class_loader'
|
2
2
|
|
3
3
|
class Module
|
4
|
-
alias_method :
|
4
|
+
alias_method :const_missing_without_cl, :const_missing
|
5
5
|
def const_missing const
|
6
|
-
ClassLoader.load(self, const) ||
|
6
|
+
ClassLoader.load(self, const) || begin
|
7
|
+
const_missing_without_cl(const)
|
8
|
+
rescue => e
|
9
|
+
# Removing ClassLoader from backtrace.
|
10
|
+
raise e.class, e.message, ClassLoader.filter_backtrace(e.backtrace)
|
11
|
+
end
|
7
12
|
end
|
8
13
|
end
|
@@ -94,6 +94,10 @@ module ClassLoader
|
|
94
94
|
@watcher ||= ClassLoader::Watcher.new monitor
|
95
95
|
end
|
96
96
|
|
97
|
+
def filter_backtrace backtrace
|
98
|
+
backtrace.reject{|path| path.include?("/lib/class_loader") or path.include?('monitor.rb')}
|
99
|
+
end
|
100
|
+
|
97
101
|
protected
|
98
102
|
# Use this method to define class name to file name mapping, by default it uses underscored paths,
|
99
103
|
# but You can override this method to use camel case for example.
|
@@ -134,9 +138,5 @@ module ClassLoader
|
|
134
138
|
""
|
135
139
|
end
|
136
140
|
end
|
137
|
-
|
138
|
-
def filter_backtrace backtrace
|
139
|
-
backtrace.reject{|path| path.include?("/lib/class_loader") or path.include?('monitor.rb')}
|
140
|
-
end
|
141
141
|
end
|
142
142
|
end
|