Sha256: 66418f161b75feef8a9a49217e37ddbd47fee76f76b10cbdfde3479cd3719e33

Contents?: true

Size: 669 Bytes

Versions: 4

Compression:

Stored size: 669 Bytes

Contents

module Locomotive::Steam

  class RenderError < ::StandardError

    LINES_RANGE = 10

    attr_reader :file, :source, :line, :original_backtrace

    def initialize(message, file, source, line, original_backtrace)
      @file, @source, @line, @original_backtrace = file, source, line, original_backtrace
      super(message)
    end

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

      lines = source.split("\n")

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

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

    def backtrace
      original_backtrace
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
locomotivecms_steam-1.0.0.pre.beta.2 lib/locomotive/steam/errors.rb
locomotivecms_steam-1.0.0.pre.beta.1 lib/locomotive/steam/errors.rb
locomotivecms_steam-1.0.0.pre.alpha.3 lib/locomotive/steam/errors.rb
locomotivecms_steam-1.0.0.pre.alpha.2 lib/locomotive/steam/errors.rb