pry/lib/pry/commands/edit/exception_patcher.rb

30 lines
781 B
Ruby

# frozen_string_literal: true
class Pry
class Command
class Edit
class ExceptionPatcher
attr_accessor :pry_instance
attr_accessor :state
attr_accessor :file_and_line
def initialize(pry_instance, state, exception_file_and_line)
@pry_instance = pry_instance
@state = state
@file_and_line = exception_file_and_line
end
# perform the patch
def perform_patch
file_name, = file_and_line
lines = state.dynamical_ex_file || File.read(file_name)
source = Pry::Editor.new(pry_instance).edit_tempfile_with_content(lines)
pry_instance.evaluate_ruby source
state.dynamical_ex_file = source.split("\n")
end
end
end
end
end