30 lines
781 B
Ruby
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
|