class Zikrash::CodeExtractor

Attributes

file_location[RW]
line_number[RW]

Public Class Methods

new(backtrace_line) click to toggle source
# File lib/zikrash/code_extractor.rb, line 8
def initialize(backtrace_line)
  self.file_location = "#{Rails.root}/#{backtrace_line.split(':')[0]}"
  self.line_number = backtrace_line.split(':')[1].to_i
  self
end

Public Instance Methods

result() click to toggle source
# File lib/zikrash/code_extractor.rb, line 14
def result
  retrieve_code_lines
end

Private Instance Methods

retrieve_code_lines() click to toggle source
# File lib/zikrash/code_extractor.rb, line 20
def retrieve_code_lines
  code_lines = {}
  File.open(Pathname.new(file_location).realpath.to_s) do |file|
    file.each_line.with_index(1) do |line, index|
      code_lines[index] = line if index.between?(line_number - 5, line_number + 5)
      break if index > line_number + 5
    end
  end
  code_lines
end