Sha256: e9e2e770c41cd8428ed6e2c6eb556759193486dfc599115cb87732c453e346e9

Contents?: true

Size: 1.11 KB

Versions: 11

Compression:

Stored size: 1.11 KB

Contents

require 'table_print'

module PactBroker
  module Client
    class Matrix
      class TextFormatter

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

        OPTIONS = [
          { consumer: {} },
          { consumer_version: {display_name: 'C.VERSION'} },
          { provider: {} },
          { provider_version: {display_name: 'P.VERSION'} },
          { success: {display_name: '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, OPTIONS)
          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

11 entries across 11 versions & 1 rubygems

Version Path
pact_broker-client-1.17.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.16.2 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.16.1 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.16.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.15.1 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.15.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.14.1 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.14.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.13.1 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.13.0 lib/pact_broker/client/matrix/text_formatter.rb
pact_broker-client-1.12.0 lib/pact_broker/client/matrix/text_formatter.rb