1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00

added set_active_instance() method, added check to Pry.current_line += line to only append if expr is non-nil

This commit is contained in:
John Mair 2011-05-25 02:39:18 +12:00
parent 8d63a4016a
commit 6ce8da2b06

View file

@ -180,27 +180,21 @@ class Pry
end
# save the pry instance to active_instance
Pry.active_instance = self
target.eval("_pry_ = ::Pry.active_instance")
set_active_instance(target)
@last_result_is_exception = false
# eval the expression and save to last_result
# Do not want __FILE__, __LINE__ here because we need to distinguish
# (eval) methods for show-method and friends.
# This also sets the `_` local for the session.
expr = r(target)
Pry.line_buffer.push(*expr.each_line)
result = set_last_result(target.eval(expr, "(pry)", Pry.current_line), target)
result
set_last_result(target.eval(expr, "(pry)", Pry.current_line), target)
rescue SystemExit => e
exit
rescue Exception => e
@last_result_is_exception = true
set_last_exception(e, target)
ensure
Pry.current_line += expr.each_line.to_a.size
Pry.current_line += expr.each_line.count if expr
end
# Perform a read.
@ -299,6 +293,14 @@ class Pry
target.eval("_ex_ = ::Pry.last_exception")
end
# Set the active instance for a session.
# This method should not need to be invoked directly.
# @param [Binding] target The binding to set `_ex_` on.
def set_active_instance(target)
Pry.active_instance = self
target.eval("_pry_ = ::Pry.active_instance")
end
# @return [Boolean] True if the last result is an exception that was raised,
# as opposed to simply an instance of Exception (like the result of
# Exception.new)