Sha256: 54b7aab4e8f6d6cbe7bb61c8910a791f9d34509aa61e394e2e285099eaf123fa

Contents?: true

Size: 1.57 KB

Versions: 25

Compression:

Stored size: 1.57 KB

Contents

require 'rspec/core/formatters/console_codes'

module Fivemat
  class RSpec3
    include ElapsedTime

    # See fivemat.rb for formatter registration.
    attr_reader :output, :failed_notifications

    def initialize(output)
      @output = output
      @group_level = 0
      @index_offset = 0
      @failed_notifications = []
    end

    Color = ::RSpec::Core::Formatters::ConsoleCodes

    def example_passed(notification)
      output.print Color.wrap('.', :success)
    end

    def example_pending(notification)
      output.print Color.wrap('*', :pending)
    end

    def example_failed(notification)
      @failed_notifications << notification
      output.print Color.wrap('F', :failure)
    end

    def example_group_started(event)
      if @group_level.zero?
        output.print "#{event.group.description} "
        @start_time = Time.now
      end

      @group_level += 1
    end

    def example_group_finished(event)
      @group_level -= 1

      if @group_level.zero?
        print_elapsed_time output, @start_time
        output.puts

        failed_notifications.each_with_index do |failure, index|
          output.puts failure.fully_formatted(@index_offset + index + 1)
        end

        @index_offset += failed_notifications.size
        failed_notifications.clear
      end
    end

    def dump_summary(summary)
      output.puts summary.fully_formatted
    end

    def seed(notification)
      return unless notification.seed_used?
      output.puts notification.fully_formatted
    end

    def message(notification)
      output.puts notification.message
    end
  end
end

Version data entries

25 entries across 24 versions & 10 rubygems

Version Path
logstash-filter-csharp-0.2.1 vendor/bundle/jruby/2.3.0/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
logstash-filter-csharp-0.2.0 vendor/bundle/jruby/2.3.0/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
logstash-output-icinga-1.1.0 vendor/jruby/2.3.0/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
logstash-output-icinga-1.1.0 vendor/jruby/1.9/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
logstash-filter-csharp-0.1.0 vendor/bundle/jruby/2.3.0/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
logstash-filter-htmlentities-0.1.0 vendor/bundle/jruby/1.9/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
logstash-output-icinga-1.0.0 vendor/jruby/1.9/gems/fivemat-1.3.3/lib/fivemat/rspec3.rb
fivemat-1.3.3 lib/fivemat/rspec3.rb
logstash-filter-zabbix-0.1.2 vendor/bundle/jruby/1.9/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-filter-zabbix-0.1.1 vendor/bundle/jruby/1.9/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-input-fifo-0.9.1 vendor/bundle/jruby/1.9/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-input-fifo-0.9.0 vendor/bundle/jruby/1.9/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-input-salesforce-3.0.0 vendor/jruby/1.9/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
ivanvc-logstash-input-s3-3.1.1.4 vendor/local/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
ivanvc-logstash-input-s3-3.1.1.3 vendor/local/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
ivanvc-logstash-input-s3-3.1.1.2 vendor/local/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-filter-delta-1.1.0 vendor/bundle/jruby/2.2.0/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-filter-delta-1.0.1 vendor/bundle/jruby/2.2.0/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-filter-base64-1.0.4 vendor/bundle/jruby/2.2.0/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb
logstash-filter-base64-1.0.3 vendor/bundle/jruby/2.2.0/gems/fivemat-1.3.2/lib/fivemat/rspec3.rb