Class: Klenod::Runtime::BacktraceRewriter
- Inherits:
-
Object
- Object
- Klenod::Runtime::BacktraceRewriter
- Defined in:
- lib/klenod/runtime/backtrace_rewriter.rb
Defined Under Namespace
Classes: BacktraceString, ParsedBacktraceEntry
Instance Method Summary collapse
-
#initialize(mods) ⇒ BacktraceRewriter
constructor
A new instance of BacktraceRewriter.
- #rewrite_backtrace(backtrace) ⇒ Object
- #rewrite_exception(e) ⇒ Object
-
#source_for(file) ⇒ Object
The original source of the module evaluated from
file, for tools that show an excerpt next to a frame.
Constructor Details
#initialize(mods) ⇒ BacktraceRewriter
Returns a new instance of BacktraceRewriter.
41 42 43 44 45 |
# File 'lib/klenod/runtime/backtrace_rewriter.rb', line 41 def initialize(mods) @source_maps = source_maps_for(mods) @source_map_cache = Hash.new { |h, path| h[path] = @source_maps[path] } @constant_display_names = constant_display_names_for(mods) end |
Instance Method Details
#rewrite_backtrace(backtrace) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/klenod/runtime/backtrace_rewriter.rb', line 52 def rewrite_backtrace(backtrace) backtrace.map do |line| if (entry = ParsedBacktraceEntry.parse(line)) rewrite_backtrace_entry(entry).to_backtrace_string else line end end end |
#rewrite_exception(e) ⇒ Object
47 48 49 50 |
# File 'lib/klenod/runtime/backtrace_rewriter.rb', line 47 def rewrite_exception(e) (e) e.set_backtrace(rewrite_backtrace(e.backtrace)) end |
#source_for(file) ⇒ Object
The original source of the module evaluated from file, for tools
that show an excerpt next to a frame.
64 65 66 |
# File 'lib/klenod/runtime/backtrace_rewriter.rb', line 64 def source_for(file) @source_map_cache[file]&.input end |