summaryrefslogtreecommitdiff
path: root/lib/pry/testable/evalable.rb
blob: a1cb84a3ffaf3d7eab9838300d18aa8a5aa83b66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
module Pry::Testable::Evalable
  def pry_tester(*args, &block)
    if args.length == 0 || args[0].is_a?(Hash)
      args.unshift(Pry.toplevel_binding)
    end
    Pry::Testable::PryTester.new(*args).tap do |t|
      t.singleton_class.class_eval(&block) if block
    end
  end

  def pry_eval(*eval_strs)
    b = String === eval_strs.first ? Pry.toplevel_binding : Pry.binding_for(eval_strs.shift)
    pry_tester(b).eval(*eval_strs)
  end
end