Sha256: 895ec818a16ded0cf785c725d2531dbd593ab085793712c9bab2beced7463bcb

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

module Paraduct
  class TestResponse
    attr_reader :jobs

    def initialize
      @jobs = []
    end

    delegate :push, :count, to: :jobs, prefix: true

    def successful?
      @jobs.all? { |result| result[:successful] }
    end

    def failure?
      !successful?
    end

    def detail_message
      all_count = @jobs.count
      successful_count = @jobs.count { |result| result[:successful] }
      failure_count = all_count - successful_count

      message = "======================================================\n"

      if successful_count > 0
        message << "Passed:\n\n"
        @jobs.select { |result| result[:successful] }.each_with_index do |result, i|
          message << "  #{i + 1}) #{result[:formatted_params]}\n"
        end
        message << "\n"
      end

      if failure_count > 0
        message << "Failures:\n\n"
        @jobs.select { |result| !result[:successful] }.each_with_index do |result, i|
          message << "  #{i + 1}) #{result[:formatted_params]}\n"
        end
        message << "\n"
      end

      message << "#{all_count} jobs, #{failure_count} failures, #{successful_count} passed\n"

      message
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
paraduct-1.0.1 lib/paraduct/test_response.rb
paraduct-1.0.0 lib/paraduct/test_response.rb