2 if RUBY_VERSION >= '1.9'
3 FrozenObjectError
= RuntimeError
5 FrozenObjectError
= TypeError
9 class Exception
# :nodoc:
11 Pathname
.clean_within message
14 TraceSubstitutions
= []
15 FrameworkRegexp
= /generated|vendor|dispatch|ruby|script\/\w
+/
18 backtrace
.collect
do |line
|
19 Pathname
.clean_within(TraceSubstitutions
.inject(line
) do |result
, (regexp
, sub
)|
20 result
.gsub regexp
, sub
25 def application_backtrace
26 before_application_frame
= true
28 trace
= clean_backtrace
.reject
do |line
|
29 non_app_frame
= (line
=~ FrameworkRegexp
)
30 before_application_frame
= false unless non_app_frame
31 non_app_frame
&& ! before_application_frame
34 # If we didn't find any application frames, return an empty app trace.
35 before_application_frame
? [] : trace
38 def framework_backtrace
39 clean_backtrace
.grep FrameworkRegexp