Class: Locomotive::Steam::TemplateError

Inherits:
Liquid::Error
  • Object
show all
Defined in:
lib/locomotive/steam/errors.rb

Direct Known Subclasses

ActionError, JsonParsingError, LiquidError

Constant Summary collapse

LINES_RANGE =
10

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, template_name, source, line_number, original_backtrace) ⇒ TemplateError

Returns a new instance of TemplateError.



27
28
29
30
31
32
33
# File 'lib/locomotive/steam/errors.rb', line 27

def initialize(message, template_name, source, line_number, original_backtrace)
  super(message)
  self.template_name      = template_name
  self.line_number        = line_number
  self.source             = source
  self.original_backtrace = original_backtrace
end

Instance Attribute Details

#original_backtraceObject

Returns the value of attribute original_backtrace.



25
26
27
# File 'lib/locomotive/steam/errors.rb', line 25

def original_backtrace
  @original_backtrace
end

#sourceObject

Returns the value of attribute source.



25
26
27
# File 'lib/locomotive/steam/errors.rb', line 25

def source
  @source
end

Instance Method Details

#backtraceObject



47
48
49
# File 'lib/locomotive/steam/errors.rb', line 47

def backtrace
  original_backtrace
end

#code_linesObject



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/locomotive/steam/errors.rb', line 35

def code_lines
  return [] if source.blank? || line_number.nil?

  lines = source.split("\n")

  start   = line_number - (LINES_RANGE / 2)
  start   = 1 if start <= 0
  finish  = line_number + (LINES_RANGE / 2)

  (start..finish).map { |i| [i, lines[i - 1]] }
end