class Minitest::Runnable

def self.run reporter, options = {}

def self.run reporter, options = {}
  pos = options[:filter]
  neg = options[:exclude]
  pos = Regexp.new $1 if pos.kind_of?(String) && pos =~ %r%/(.*)/%
  neg = Regexp.new $1 if neg.kind_of?(String) && neg =~ %r%/(.*)/%
  filtered_methods = self.runnable_methods
    .select { |m| !pos ||  pos === m || pos === "#{self}##{m}"  }
    .reject { |m|  neg && (neg === m || neg === "#{self}##{m}") }
  return if filtered_methods.empty?
  t0 = name = nil
  @_info_handler = lambda do
    unless reporter.passed? then
      warn "Current results:"
      warn reporter.reporters.grep(SummaryReporter).first
    end
    warn "Current: %s#%s %.2fs" % [self, name, Minitest.clock_time - t0]
  end
  with_info_handler reporter do
    filtered_methods.each do |method_name|
      name = method_name
      t0 = Minitest.clock_time
      run_one_method self, method_name, reporter
    end
  end
end