Class: Honeybadger::Backtrace
- Inherits:
-
Object
- Object
- Honeybadger::Backtrace
- Defined in:
- lib/honeybadger/backtrace.rb
Overview
Internal: Front end to parsing the backtrace for each notice
Defined Under Namespace
Classes: Line
Instance Attribute Summary collapse
-
#application_lines ⇒ Object
readonly
Holder for an Array of Backtrace::Line instances.
-
#lines ⇒ Object
readonly
Holder for an Array of Backtrace::Line instances.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#as_json(options = {}) ⇒ Object
JSON support.
-
#initialize(lines) ⇒ Backtrace
constructor
A new instance of Backtrace.
- #inspect ⇒ Object
-
#to_ary ⇒ Object
(also: #to_a)
Convert Backtrace to arry.
-
#to_json(*a) ⇒ Object
Creates JSON.
- #to_s ⇒ Object
Constructor Details
#initialize(lines) ⇒ Backtrace
Returns a new instance of Backtrace.
120 121 122 123 |
# File 'lib/honeybadger/backtrace.rb', line 120 def initialize(lines) self.lines = lines self.application_lines = lines.select(&:application?) end |
Instance Attribute Details
#application_lines ⇒ Object
Holder for an Array of Backtrace::Line instances.
108 109 110 |
# File 'lib/honeybadger/backtrace.rb', line 108 def application_lines @application_lines end |
#lines ⇒ Object
Holder for an Array of Backtrace::Line instances.
108 109 110 |
# File 'lib/honeybadger/backtrace.rb', line 108 def lines @lines end |
Class Method Details
.parse(ruby_backtrace, opts = {}) ⇒ Object
110 111 112 113 114 115 116 117 118 |
# File 'lib/honeybadger/backtrace.rb', line 110 def self.parse(ruby_backtrace, opts = {}) ruby_lines = split_multiline_backtrace(ruby_backtrace) lines = ruby_lines.collect do |unparsed_line| Line.parse(unparsed_line, opts) end.compact instance = new(lines) end |
Instance Method Details
#==(other) ⇒ Object
155 156 157 158 159 160 161 |
# File 'lib/honeybadger/backtrace.rb', line 155 def ==(other) if other.respond_to?(:to_json) to_json == other.to_json else false end end |
#as_json(options = {}) ⇒ Object
JSON support.
Returns JSON representation of backtrace.
136 137 138 |
# File 'lib/honeybadger/backtrace.rb', line 136 def as_json( = {}) to_ary end |
#inspect ⇒ Object
151 152 153 |
# File 'lib/honeybadger/backtrace.rb', line 151 def inspect "<Backtrace: " + lines.collect { |line| line.inspect }.join(", ") + ">" end |
#to_ary ⇒ Object Also known as: to_a
Convert Backtrace to arry.
Returns array containing backtrace lines.
128 129 130 |
# File 'lib/honeybadger/backtrace.rb', line 128 def to_ary lines.map { |l| { :number => l.filtered_number, :file => l.filtered_file, :method => l.filtered_method } } end |
#to_json(*a) ⇒ Object
Creates JSON.
Returns valid JSON representation of backtrace.
143 144 145 |
# File 'lib/honeybadger/backtrace.rb', line 143 def to_json(*a) as_json.to_json(*a) end |
#to_s ⇒ Object
147 148 149 |
# File 'lib/honeybadger/backtrace.rb', line 147 def to_s lines.map(&:to_s).join("\n") end |