/usr/lib/ruby/vendor_ruby/pry/commands/watch_expression/expression.rb is in pry 0.10.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | class Pry
class Command::WatchExpression
class Expression
attr_reader :target, :source, :value, :previous_value, :_pry_
def initialize(_pry_, target, source)
@_pry_ = _pry_
@target = target
@source = Code.new(source).strip
end
def eval!
@previous_value = @value
@value = Pry::ColorPrinter.pp(target_eval(target, source), "")
end
def to_s
"#{Code.new(source).highlighted.strip} => #{value}"
end
# Has the value of the expression changed?
#
# We use the pretty-printed string represenation to detect differences
# as this avoids problems with dup (causes too many differences) and == (causes too few)
def changed?
(value != previous_value)
end
private
def target_eval(target, source)
target.eval(source)
rescue => e
e
end
end
end
end
|