class RSpec::Core::Reporter

def abort(seed)

def abort(seed)
  RSpec.deprecate "RSpec::Core::Reporter#abort", :replacement => "RSpec::Core::Reporter#finish"
  finish(seed)
end

def deprecation(message)

def deprecation(message)
  notify :deprecation, message
end

def example_failed(example)

def example_failed(example)
  @failure_count += 1
  notify :example_failed, example
end

def example_group_finished(group)

def example_group_finished(group)
  notify :example_group_finished, group unless group.descendant_filtered_examples.empty?
end

def example_group_started(group)

def example_group_started(group)
  notify :example_group_started, group unless group.descendant_filtered_examples.empty?
end

def example_passed(example)

def example_passed(example)
  notify :example_passed, example
end

def example_pending(example)

def example_pending(example)
  @pending_count += 1
  notify :example_pending, example
end

def example_started(example)

def example_started(example)
  @example_count += 1
  notify :example_started, example
end

def finish(seed)

def finish(seed)
  begin
    stop
    notify :start_dump
    notify :dump_pending
    notify :dump_failures
    notify :deprecation_summary
    notify :dump_summary, @duration, @example_count, @failure_count, @pending_count
    notify :seed, seed if seed
  ensure
    notify :close
  end
end

def initialize(*formatters)

def initialize(*formatters)
  @listeners = Hash.new { |h,k| h[k] = [] }
  formatters.each do |formatter|
    register_listener(formatter, *NOTIFICATIONS)
  end
  @example_count = @failure_count = @pending_count = 0
  @duration = @start = nil
end

def message(message)

def message(message)
  notify :message, message
end

def notify(event, *args, &block)

def notify(event, *args, &block)
  registered_listeners(event).each do |formatter|
    formatter.send(event, *args, &block)
  end
end

def register_listener(listener, *notifications)

Parameters:
  • Array (Array) -- of symbols represents the events a listener wishes to subscribe too
  • An (Object) -- obect that wishes to be notified of reporter events

Other tags:
    Api: -
def register_listener(listener, *notifications)
  notifications.each do |notification|
    @listeners[notification.to_sym] << listener if listener.respond_to?(notification)
  end
  true
end

def registered_listeners(notification)

def registered_listeners(notification)
  @listeners[notification]
end

def report(expected_example_count, seed=nil)

Parameters:
  • block (Block) -- yields itself for further reporting.
  • seed (Integer) -- the seed used to randomize the spec run
  • count (Integer) -- the number of examples being run

Overloads:
  • report(count, seed, &block)
  • report(count, &block)

Other tags:
    Api: -
def report(expected_example_count, seed=nil)
  start(expected_example_count)
  begin
    yield self
  ensure
    finish(seed)
  end
end

def start(expected_example_count)

def start(expected_example_count)
  @start = RSpec::Core::Time.now
  notify :start, expected_example_count
end

def stop

def stop
  @duration = (RSpec::Core::Time.now - @start).to_f if @start
  notify :stop
end