Module: Stackify::Backtrace
- Defined in:
- lib/stackify/utils/backtrace.rb
Constant Summary collapse
- ALL_TEXT_FROM_START_TO_FIRST_COLON_REGEXP =
/\A([^:]+)/
- NUMBER_BETWEEN_TWO_COLONS_REGEXP =
/:(\d+):/
- TEXT_AFTER_IN_BEFORE_END_REGEXP =
/in\s`(\S+)'\z/
Class Method Summary collapse
- .backtrace_in_line(backtrace) ⇒ Object
- .file_name(backtrace_str) ⇒ Object
- .line_number(backtrace_str) ⇒ Object
- .method_name(backtrace_str) ⇒ Object
- .stacktrace(depth = 5, backtrace) ⇒ Object
Class Method Details
.backtrace_in_line(backtrace) ⇒ Object
33 34 35 |
# File 'lib/stackify/utils/backtrace.rb', line 33 def self.backtrace_in_line backtrace backtrace.join("\n") end |
.file_name(backtrace_str) ⇒ Object
16 17 18 |
# File 'lib/stackify/utils/backtrace.rb', line 16 def self.file_name backtrace_str backtrace_str[ALL_TEXT_FROM_START_TO_FIRST_COLON_REGEXP, 1] end |
.line_number(backtrace_str) ⇒ Object
7 8 9 |
# File 'lib/stackify/utils/backtrace.rb', line 7 def self.line_number backtrace_str backtrace_str[NUMBER_BETWEEN_TWO_COLONS_REGEXP, 1] end |
.method_name(backtrace_str) ⇒ Object
11 12 13 14 |
# File 'lib/stackify/utils/backtrace.rb', line 11 def self.method_name backtrace_str return nil unless backtrace_str backtrace_str[TEXT_AFTER_IN_BEFORE_END_REGEXP, 1] end |
.stacktrace(depth = 5, backtrace) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/stackify/utils/backtrace.rb', line 20 def self.stacktrace depth=5, backtrace return nil unless backtrace new_backtrace = [] backtrace.take(depth).each do |line| new_backtrace << { 'LineNum' => line_number(line), 'Method' => method_name(line), 'CodeFileName' => file_name(line) } end new_backtrace end |