Sha256: f2f4f84c226e321aa176ccf0767ec5d197db5af2ece39f62278f9b257c1716f0

Contents?: true

Size: 894 Bytes

Versions: 9

Compression:

Stored size: 894 Bytes

Contents

require 'yajl'

class FailuresPrinter
  DEFAULT_OUTPUT_FILE = "/tmp/gorgon-failed-files.json"

  attr_reader :output_file

  def initialize(configuration, job_state)
    @job_state = job_state
    @job_state.add_observer(self)
    @output_file = configuration.fetch(:failed_files) { DEFAULT_OUTPUT_FILE }
  end

  def update payload
    return unless @job_state.is_job_complete? || @job_state.is_job_cancelled?

    File.open(@output_file, 'w+') do |fd|
      fd.write(Yajl::Encoder.encode(failed_files + unfinished_files))
    end
  end

  private

  def failed_files
    failed_files = []
    @job_state.each_failed_test do |test|
      failed_files << "#{test[:filename]}"
    end
    failed_files
  end

  def unfinished_files
    unfinished_files = []
    @job_state.each_running_file do |hostname, filename|
      unfinished_files << "#{filename}"
    end
    unfinished_files
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gorgon-0.11.0 lib/gorgon/failures_printer.rb
gorgon-0.10.5 lib/gorgon/failures_printer.rb
gorgon-0.10.4 lib/gorgon/failures_printer.rb
gorgon-0.10.3 lib/gorgon/failures_printer.rb
gorgon-0.10.2 lib/gorgon/failures_printer.rb
gorgon-0.10.1 lib/gorgon/failures_printer.rb
gorgon-0.10.0 lib/gorgon/failures_printer.rb
gorgon-0.9.0 lib/gorgon/failures_printer.rb
gorgon-0.8.4 lib/gorgon/failures_printer.rb