lib/rspec/example_steps/reporter.rb in rspec-example_steps-0.2.5 vs lib/rspec/example_steps/reporter.rb in rspec-example_steps-3.0.0

- old
+ new

@@ -1,30 +1,45 @@ module RSpec module ExampleSteps module Reporter - def self.included(base) - base::NOTIFICATIONS.push( - :example_step_started, - :example_step_passed, - :example_step_pending, - :example_step_failed - ) if base.constants.include?(:NOTIFICATIONS) + def process_example_step(example, type, message, options) + example_step_started(self, type, message, options) + + if block_given? && !options[:pending] + begin + yield + rescue Exception => e + example_step_failed(self, type, message, options) + raise e + end + example_step_passed(self, type, message, options) + else + example_step_pending(self, type, message, options) + end end def example_step_started(example, type, message, options) - notify :example_step_started, example, type, message, options + notify :example_step_started, Notification.new(example, type, message, options) end def example_step_passed(example, type, message, options) - notify :example_step_passed, example, type, message, options + notify :example_step_passed, Notification.new(example, type, message, options) end def example_step_pending(example, type, message, options) - notify :example_step_pending, example, type, message, options + notify :example_step_pending, Notification.new(example, type, message, options) end def example_step_failed(example, type, message, options) - notify :example_step_failed, example, type, message, options + notify :example_step_failed, Notification.new(example, type, message, options) + end + + def registered_formatters + @listeners.values.map(&:to_a).flatten.uniq + end + + def find_registered_formatter(klass) + registered_formatters.detect { |formatter| formatter.class == klass } end end end end