class PactBroker::Client::Pacts::ListLatestVersions

Attributes

index_entry_point[R]
output[R]

Public Class Methods

call(pact_broker_base_url, output, pact_broker_client_options) click to toggle source
# File lib/pact_broker/client/pacts/list_latest_versions.rb, line 13
def self.call(pact_broker_base_url, output, pact_broker_client_options)
  new(pact_broker_base_url, output, pact_broker_client_options).call
end
new(pact_broker_base_url, output, pact_broker_client_options) click to toggle source
# File lib/pact_broker/client/pacts/list_latest_versions.rb, line 17
def initialize(pact_broker_base_url, output, pact_broker_client_options)
  @index_entry_point = create_index_entry_point(pact_broker_base_url, pact_broker_client_options)
  @output = output
end

Public Instance Methods

call() click to toggle source
# File lib/pact_broker/client/pacts/list_latest_versions.rb, line 22
def call
  message = if output == 'json'
    versions_resource.response.raw_body
  else
    to_text(versions)
  end
  PactBroker::Client::CommandResult.new(true, message)

rescue StandardError => e
  PactBroker::Client::CommandResult.new(false, e.message)
end

Private Instance Methods

to_text(pacts) click to toggle source
# File lib/pact_broker/client/pacts/list_latest_versions.rb, line 53
def to_text(pacts)
  require 'table_print'
  options = [
    { consumer_name: {display_name: 'consumer'} },
    { consumer_version_number: {display_name: 'consumer_version'} },
    { provider_name: {display_name: 'provider'} },
    { created_at: {} }
  ]
  TablePrint::Printer.new(pacts, options).table_print
end
versions() click to toggle source
# File lib/pact_broker/client/pacts/list_latest_versions.rb, line 38
def versions
  versions_resource.pacts.collect do | pact |
    OpenStruct.new(
      consumer_name: pact['_embedded']['consumer']['name'],
      provider_name: pact['_embedded']['provider']['name'],
      consumer_version_number: pact['_embedded']['consumer']['_embedded']['version']['number'],
      created_at: pact['createdAt']
    )
  end
end
versions_resource() click to toggle source
# File lib/pact_broker/client/pacts/list_latest_versions.rb, line 49
def versions_resource
  index_entry_point.get!._link('pb:latest-pact-versions').get!
end