25 lines
590 B
Ruby
25 lines
590 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Pry
|
|
module Testable
|
|
module Evalable
|
|
def pry_tester(*args, &block)
|
|
args.unshift(Pry.toplevel_binding) if args.empty? || args[0].is_a?(Hash)
|
|
Pry::Testable::PryTester.new(*args).tap do |t|
|
|
t.singleton_class.class_eval(&block) if block
|
|
end
|
|
end
|
|
|
|
def pry_eval(*eval_strs)
|
|
b =
|
|
if eval_strs.first.is_a?(String)
|
|
Pry.toplevel_binding
|
|
else
|
|
Pry.binding_for(eval_strs.shift)
|
|
end
|
|
pry_tester(b).eval(*eval_strs)
|
|
end
|
|
end
|
|
end
|
|
end
|