Sha256: e0a1cf2fc9990d16b4346d907e48239e3c27c394d8d3c10aec6a6f2922f1b6b7
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
require 'delegate' module PactBroker module Pacts class SelectedPact < SimpleDelegator attr_reader :pact, :selectors def initialize(pact, selectors) super(pact) @pact = pact @selectors = selectors end # might actually be, but this code doesn't know it. def overall_latest? selectors.any?(&:overall_latest?) end def latest_for_tag? selectors.any?(&:latest_for_tag?) end def self.merge(selected_pacts) latest_selected_pact = selected_pacts.sort_by(&:consumer_version_order).last selectors = selected_pacts.collect(&:selectors).flatten.uniq SelectedPact.new(latest_selected_pact.pact, selectors) end def merge(other) if pact_version_sha != other.pact_version_sha raise "These two pacts do not have the same pact_version_sha. They cannot be merged. #{pact_version_sha} and #{other.pact_version_sha}" else SelectedPact.new() end end def tag_names_for_selectors_for_latest_pacts selectors.select(&:latest_for_tag?).collect(&:tag) end def consumer_version_order pact.consumer_version.order end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-2.47.1 | lib/pact_broker/pacts/selected_pact.rb |
pact_broker-2.47.0 | lib/pact_broker/pacts/selected_pact.rb |