Class: RSpec::Core::Reporter
- Inherits:
-
Object
- Object
- RSpec::Core::Reporter
- Defined in:
- lib/rspec/core/reporter.rb
Overview
A reporter will send notifications to listeners, usually formatters for the spec suite run.
Instance Method Summary collapse
-
#initialize(configuration) ⇒ Reporter
constructor
A new instance of Reporter.
-
#message(message) ⇒ void
Send a custom message to supporting formatters.
-
#publish(event, options = {}) ⇒ void
Publish a custom event to supporting registered formatters.
-
#register_listener(listener, *notifications) ⇒ void
Registers a listener to a list of notifications.
-
#report(expected_example_count) {|Block| ... } ⇒ void
Initializes the report run and yields itself for further reporting.
Constructor Details
#initialize(configuration) ⇒ Reporter
Returns a new instance of Reporter.
14 15 16 17 18 19 20 21 |
# File 'lib/rspec/core/reporter.rb', line 14 def initialize(configuration) @configuration = configuration @listeners = Hash.new { |h, k| h[k] = Set.new } @examples = [] @failed_examples = [] @pending_examples = [] @duration = @start = @load_time = nil end |
Instance Method Details
#message(message) ⇒ void
Send a custom message to supporting formatters.
94 95 96 |
# File 'lib/rspec/core/reporter.rb', line 94 def () notify :message, Notifications::MessageNotification.new() end |
#publish(event, options = {}) ⇒ void
Publish a custom event to supporting registered formatters.
103 104 105 106 107 108 109 |
# File 'lib/rspec/core/reporter.rb', line 103 def publish(event, ={}) if RSPEC_NOTIFICATIONS.include? event raise "RSpec::Core::Reporter#publish is intended for sending custom " \ "events not internal RSpec ones, please rename your custom event." end notify event, Notifications::CustomNotification.for() end |
#register_listener(listener, *notifications) ⇒ void
Registers a listener to a list of notifications. The reporter will send notification of events to all registered listeners.
47 48 49 50 51 52 |
# File 'lib/rspec/core/reporter.rb', line 47 def register_listener(listener, *notifications) notifications.each do |notification| @listeners[notification.to_sym] << listener end true end |
#report(count, &block) ⇒ void #report(count, &block) ⇒ void
Initializes the report run and yields itself for further reporting. The block is required, so that the reporter can manage cleaning up after the run.
74 75 76 77 78 79 80 81 |
# File 'lib/rspec/core/reporter.rb', line 74 def report(expected_example_count) start(expected_example_count) begin yield self ensure finish end end |