class Minitest::Reporters::DelegateReporter

Public Class Methods

new(reporters, options = {}) click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 4
def initialize(reporters, options = {})
  @reporters = reporters
  @options = options
  @all_reporters = nil
end

Public Instance Methods

io() click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 10
def io
  all_reporters.first.io unless all_reporters.empty?
  @options[:io]
end
passed?() click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 29
def passed?
  all_reporters.all?(&:passed?)
end
record(result) click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 19
def record(result)
  all_reporters.each do |reporter|
    reporter.record result
  end
end
report() click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 25
def report
  all_reporters.each(&:report)
end
start() click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 15
def start
  all_reporters.each(&:start)
end

Private Instance Methods

all_reporters() click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 47
def all_reporters
  @all_reporters ||= init_all_reporters
end
guard_reporter(reporters) click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 61
def guard_reporter(reporters)
  guards = Array(reporters.detect { |r| r.class.name == "Guard::Minitest::Reporter" })
  return guards unless ENV['RM_INFO']

  warn 'RM_INFO is set thus guard reporter has been dropped' unless guards.empty?
  []
end
init_all_reporters() click to toggle source
# File lib/minitest/minitest_reporter_plugin.rb, line 51
def init_all_reporters
  return @reporters unless defined?(Minitest::Reporters.reporters) && Minitest::Reporters.reporters
  (Minitest::Reporters.reporters + guard_reporter(@reporters)).each do |reporter|
    reporter.io = @options[:io]
    if reporter.respond_to?(:add_defaults)
      reporter.add_defaults(@options.merge(:total_count => total_count(@options)))
    end
  end
end
total_count(options) click to toggle source

stolen from minitest self.run

# File lib/minitest/minitest_reporter_plugin.rb, line 36
def total_count(options)
  filter = options[:filter] || '/./'
  filter = Regexp.new $1 if filter =~ /\/(.*)\//

  Minitest::Runnable.runnables.map { |runnable|
    runnable.runnable_methods.find_all { |m|
      filter === m || filter === "#{runnable}##{m}"
    }.size
  }.inject(:+)
end