module Pry::Testable::Evalable

def pry_eval(*eval_strs)

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

def pry_tester(*args, &block)

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