Sha256: f38a3ca55469cce3e768885770c0cbd20086aef1c9a02124889310222d365b25

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

module Specjour::RSpec
  class DistributedFormatter < Specjour::Configuration.rspec_formatter.call

    def metadata_for_examples
      examples.map do |example|
        metadata = example.metadata
        {
          :execution_result => marshalable_execution_result(example.execution_result),
          :description      => metadata[:description],
          :file_path        => metadata[:file_path],
          :full_description => metadata[:full_description],
          :line_number      => metadata[:line_number],
          :location         => metadata[:location]
        }
      end
    end

    def noop(*args)
    end
    alias dump_pending noop
    alias dump_failures noop
    alias start_dump noop
    alias message noop

    def color_enabled?
      true
    end

    def dump_summary(*args)
      output.send_message :rspec_summary=, metadata_for_examples
    end

    def close
      examples.clear
      super
    end

    protected

    def marshalable_execution_result(execution_result)
      if exception = execution_result[:exception]
        execution_result[:exception] = MarshalableException.new(exception)
      end
      execution_result
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
specjour-0.6.6 lib/specjour/rspec/distributed_formatter.rb
specjour-0.6.5 lib/specjour/rspec/distributed_formatter.rb
specjour-0.6.4 lib/specjour/rspec/distributed_formatter.rb