class Tryouts::Drill

def run(context=nil)

def run(context=nil)
  begin
    @reality = @sergeant.run @drill, context
    # Store the stash from the drill block
    @reality.stash = context.stash if context.respond_to? :stash
    # If the drill block returned true we assume success if there's no dream
    if @dreams.empty? && @reality.output == true
      @dreams << Tryouts::Drill::Dream.new
      @dreams.first.output = true
    end
  rescue => ex
    @reality.ecode, @reality.etype = -2, ex.class
    @reality.error, @reality.trace = ex.message, ex.backtrace
  end  
  self.success?
end