Sha256: 0604d9ad76c9890090ba354b264693dba5d4116bf61a73706193180b041fb764

Contents?: true

Size: 1.45 KB

Versions: 18

Compression:

Stored size: 1.45 KB

Contents

module Specjour
  class FinalReport
    require 'specjour/marshalable_rspec_failure'
    attr_reader :duration, :example_count, :failure_count, :pending_count, :pending_examples, :failing_examples

    def initialize
      @duration = 0.0
      @example_count = 0
      @failure_count = 0
      @pending_count = 0
      @pending_examples = []
      @failing_examples = []
    end

    def add(stats)
      stats.each do |key, value|
        if key == :duration
          @duration = value.to_f if duration < value.to_f
        else
          increment(key, value)
        end
      end
    end

    def increment(key, value)
      current = instance_variable_get("@#{key}")
      instance_variable_set("@#{key}", current + value)
    end

    def formatter_options
      @formatter_options ||= OpenStruct.new(
        :colour   => true,
        :autospec => false,
        :dry_run  => false
      )
    end

    def formatter
      @formatter ||= begin
        f = MarshalableFailureFormatter.new(formatter_options, $stdout)
        f.instance_variable_set(:@pending_examples, pending_examples)
        f
      end
    end

    def summarize
      if example_count > 0
        formatter.dump_pending
        dump_failures
        formatter.dump_summary(duration, example_count, failure_count, pending_count)
      end
    end

    def dump_failures
      failing_examples.each_with_index do |failure, index|
        formatter.dump_failure index + 1, failure
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
specjour-0.1.18 lib/specjour/final_report.rb
specjour-0.1.17 lib/specjour/final_report.rb
specjour-0.1.16 lib/specjour/final_report.rb
specjour-0.1.15 lib/specjour/final_report.rb
specjour-0.1.14 lib/specjour/final_report.rb
specjour-0.1.13 lib/specjour/final_report.rb
specjour-0.1.12 lib/specjour/final_report.rb
specjour-0.1.11 lib/specjour/final_report.rb
specjour-0.1.10 lib/specjour/final_report.rb
specjour-0.1.9 lib/specjour/final_report.rb
specjour-0.1.8 lib/specjour/final_report.rb
specjour-0.1.7 lib/specjour/final_report.rb
specjour-0.1.6 lib/specjour/final_report.rb
specjour-0.1.5 lib/specjour/final_report.rb
specjour-0.1.4 lib/specjour/final_report.rb
specjour-0.1.3 lib/specjour/final_report.rb
specjour-0.1.2 lib/specjour/final_report.rb
specjour-0.1.1 lib/specjour/final_report.rb