Sha256: 5319a96dcc66e8310d57f9d8a28fed5cb0582648653dc9daa98c4cad86b05fba

Contents?: true

Size: 873 Bytes

Versions: 3

Compression:

Stored size: 873 Bytes

Contents

require 'table_print'

module PactBroker
  module Client
    class Matrix
      class TextFormatter

        Line = Struct.new(:consumer, :consumer_version, :provider, :provider_version, :success)

        def self.call(matrix)
          data = matrix[:matrix].collect do | line |
            Line.new(
              lookup(line, :consumer, :name),
              lookup(line, :consumer, :version, :number),
              lookup(line, :provider, :name),
              lookup(line, :provider, :version, :number),
              lookup(line, :verificationResult, :success).to_s
            )
          end

          printer = TablePrint::Printer.new(data)
          printer.table_print
        end

        def self.lookup line, *keys
          keys.reduce(line) { | line, key | line[key] }
        rescue NoMethodError
          "???"
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pact_broker-client-1.11.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.10.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.9.0 lib/pact_broker/client/matrix/text_formatter.rb