class PactBroker::UI::ViewDomain::MatrixLine

Attributes

line[R]

Public Class Methods

new(line, options = {}) click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 20
def initialize line, options = {}
  @line = line
  @options = options
  @overwritten = false # true if the pact was revised and this revision is no longer the latest
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 157
def <=> other
  (orderable_fields <=> other.orderable_fields) * -1
end
base_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 216
def base_url
  @options[:base_url]
end
consumer_name() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 34
def consumer_name
  @line.consumer_name
end
consumer_name_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 38
def consumer_name_url
  hal_browser_url(pacticipant_url_from_params({ pacticipant_name: consumer_name }, base_url), base_url)
end
consumer_version_branches() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 105
def consumer_version_branches
  @line.consumer_version_branch_versions.collect do | branch_version |
    MatrixBranch.new(branch_version, consumer_name)
  end
end
consumer_version_id() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 59
def consumer_version_id
  @line.consumer_version_id
end
consumer_version_number() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 67
def consumer_version_number
  @line.consumer_version_number
end
consumer_version_number_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 75
def consumer_version_number_url
  params = { pacticipant_name: consumer_name, version_number: consumer_version_number }
  hal_browser_url(version_url_from_params(params, base_url), base_url)
end
consumer_version_order() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 80
def consumer_version_order
  @line.consumer_version_order
end
consumer_versions_in_environments() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 125
def consumer_versions_in_environments
  consumer_deployed_versions + consumer_released_versions
end
display_consumer_version_number() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 71
def display_consumer_version_number
  PactBroker::Versions::AbbreviateNumber.call(consumer_version_number)
end
display_provider_version_number() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 88
def display_provider_version_number
  PactBroker::Versions::AbbreviateNumber.call(provider_version_number)
end
latest_consumer_version_tags() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 111
def latest_consumer_version_tags
  @line.consumer_version_tags
    .select(&:latest)
    .sort_by(&:created_at)
    .collect{ | tag | MatrixTag.new(tag.to_hash.merge(pacticipant_name: consumer_name, version_number: consumer_version_number)) }
end
latest_provider_version_tags() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 139
def latest_provider_version_tags
  @line.provider_version_tags
    .select(&:latest)
    .sort_by(&:created_at)
    .collect{ | tag | MatrixTag.new(tag.to_hash.merge(pacticipant_name: provider_name, version_number: provider_version_number)) }
end
number() click to toggle source

verification number, used in verification_url method

# File lib/pact_broker/ui/view_models/matrix_line.rb, line 51
def number
  @line.verification_number
end
orderable_fields() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 153
def orderable_fields
  [@line.last_action_date, @line.pact_created_at]
end
other_consumer_version_tags() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 118
def other_consumer_version_tags
  @line.consumer_version_tags
    .reject(&:latest)
    .sort_by(&:created_at)
    .collect{ | tag | MatrixTag.new(tag.to_hash.merge(pacticipant_name: consumer_name, version_number: consumer_version_number)) }
end
other_provider_version_tags() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 146
def other_provider_version_tags
  @line.provider_version_tags
    .reject(&:latest)
    .sort_by(&:created_at)
    .collect{ | tag | MatrixTag.new(tag.to_hash.merge(pacticipant_name: provider_name, version_number: provider_version_number)) }
end
overwritten=(overwritten) click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 206
def overwritten= overwritten
  @overwritten = overwritten
end
overwritten?() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 202
def overwritten?
  @overwritten
end
pact_publication_date() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 178
def pact_publication_date
  relative_date(@line.pact_created_at)
end
pact_publication_date_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 182
def pact_publication_date_url
  pact_url(base_url, @line)
end
pact_published_order() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 190
def pact_published_order
  @line.pact_created_at.to_time.to_i
end
pact_revision_number() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 55
def pact_revision_number
  @line.pact_revision_number
end
pact_version_sha() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 42
def pact_version_sha
  @line.pact_version_sha
end
pact_version_sha_message() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 46
def pact_version_sha_message
  "The highlighted pact(s) have content that has a SHA of #{pact_version_sha}"
end
pre_verified_message() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 210
def pre_verified_message
  if @line.verification_executed_at && @line.pact_created_at > @line.verification_executed_at
    message("messages.matrix.pre_verified")
  end
end
provider_name() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 26
def provider_name
  @line.provider_name
end
provider_name_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 30
def provider_name_url
  hal_browser_url(pacticipant_url_from_params({ pacticipant_name: provider_name }, base_url), base_url)
end
provider_version_branches() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 133
def provider_version_branches
  @line.provider_version_branch_versions.collect do | branch_version |
    MatrixBranch.new(branch_version, provider_name)
  end
end
provider_version_id() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 63
def provider_version_id
  @line.provider_version_id
end
provider_version_number() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 84
def provider_version_number
  @line.provider_version_number
end
provider_version_number_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 92
def provider_version_number_url
  params = { pacticipant_name: provider_name, version_number: provider_version_number }
  hal_browser_url(version_url_from_params(params, base_url), base_url)
end
provider_version_order() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 97
def provider_version_order
  if @line.verification_executed_at
    @line.verification_executed_at.to_time.to_i
  else
    0
  end
end
provider_versions_in_environments() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 129
def provider_versions_in_environments
  provider_deployed_versions + provider_released_versions
end
relative_date(date) click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 186
def relative_date date
  DateHelper.distance_of_time_in_words(date, DateTime.now) + " ago"
end
verification_status() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 161
def verification_status
  if @line.verification_executed_at
    DateHelper.distance_of_time_in_words(@line.verification_executed_at, DateTime.now) + " ago"
  else
    ""
  end
  # case @line.success
  #   when true then "Verified"
  #   when false then "Failed"
  #   else ''
  # end
end
verification_status_class() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 194
def verification_status_class
  case @line.success
    when true then "table-success"
    when false then "table-danger"
    else ""
  end
end
verification_status_url() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 174
def verification_status_url
  hal_browser_url(verification_url(self, base_url), base_url)
end

Private Instance Methods

branch_tooltip(pacticipant_name, branch, latest) click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 224
def branch_tooltip(pacticipant_name, branch, latest)
  if latest
    "This is the latest version of #{pacticipant_name} from branch \"#{branch}\"."
  else
    "A more recent version of #{pacticipant_name} from branch \"#{branch}\" exists."
  end
end
consumer_deployed_versions() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 232
def consumer_deployed_versions
  @line.consumer_version.current_deployed_versions.collect do | deployed_version |
    MatrixDeployedVersion.new(deployed_version)
  end
end
consumer_released_versions() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 238
def consumer_released_versions
  @line.consumer_version.current_supported_released_versions.collect do | released_version |
    MatrixReleasedVersion.new(released_version)
  end
end
provider_deployed_versions() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 244
def provider_deployed_versions
  (@line.provider_version&.current_deployed_versions || []).collect do | deployed_version |
    MatrixDeployedVersion.new(deployed_version)
  end
end
provider_released_versions() click to toggle source
# File lib/pact_broker/ui/view_models/matrix_line.rb, line 250
def provider_released_versions
  (@line.provider_version&.current_supported_released_versions || []).collect do | released_version |
    MatrixReleasedVersion.new(released_version)
  end
end