Class: SolidErrors::Backtrace

Inherits:
Object
  • Object
show all
Defined in:
app/models/solid_errors/backtrace.rb

Overview

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lines) ⇒ Backtrace

Returns a new instance of Backtrace.



17
18
19
20
# File 'app/models/solid_errors/backtrace.rb', line 17

def initialize(lines)
  self.lines = lines
  self.application_lines = lines.select(&:application?)
end

Instance Attribute Details

#application_linesObject

Holder for an Array of Backtrace::Line instances.



5
6
7
# File 'app/models/solid_errors/backtrace.rb', line 5

def application_lines
  @application_lines
end

#linesObject

Holder for an Array of Backtrace::Line instances.



5
6
7
# File 'app/models/solid_errors/backtrace.rb', line 5

def lines
  @lines
end

Class Method Details

.parse(ruby_backtrace, opts = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'app/models/solid_errors/backtrace.rb', line 7

def self.parse(ruby_backtrace, opts = {})
  ruby_lines = ruby_backtrace.to_a

  lines = ruby_lines.collect do |unparsed_line|
    BacktraceLine.parse(unparsed_line.to_s, opts)
  end.compact

  new(lines)
end

Instance Method Details

#as_json(options = {}) ⇒ Object

JSON support.

Returns JSON representation of backtrace.



33
34
35
# File 'app/models/solid_errors/backtrace.rb', line 33

def as_json(options = {})
  to_ary
end

#inspectObject



41
42
43
# File 'app/models/solid_errors/backtrace.rb', line 41

def inspect
  "<Backtrace: " + lines.collect { |line| line.inspect }.join(", ") + ">"
end

#to_aryObject Also known as: to_a

Convert Backtrace to array.

Returns array containing backtrace lines.



25
26
27
# File 'app/models/solid_errors/backtrace.rb', line 25

def to_ary
  lines.take(1000).map { |l| {number: l.filtered_number, file: l.filtered_file, method: l.filtered_method, source: l.source} }
end

#to_sObject



37
38
39
# File 'app/models/solid_errors/backtrace.rb', line 37

def to_s
  lines.map(&:to_s).join("\n")
end