Class: PactBroker::Pacts::SelectedPact
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- PactBroker::Pacts::SelectedPact
- Defined in:
- lib/pact_broker/pacts/selected_pact.rb
Instance Attribute Summary collapse
-
#pact ⇒ Object
readonly
Returns the value of attribute pact.
-
#selectors ⇒ Object
readonly
Returns the value of attribute selectors.
Class Method Summary collapse
- .merge(selected_pacts) ⇒ Object
- .merge_by_consumer_version_number(selected_pacts) ⇒ Object
- .merge_by_pact_version_sha(selected_pacts) ⇒ Object
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #branches_of_selectors_for_latest_pacts ⇒ Object
- #consumer_version_order ⇒ Object
-
#initialize(pact, selectors) ⇒ SelectedPact
constructor
A new instance of SelectedPact.
- #latest_for_tag?(potential_tag = nil) ⇒ Boolean
- #overall_latest? ⇒ Boolean
- #tag_names_of_selectors_for_latest_pacts ⇒ Object
Constructor Details
#initialize(pact, selectors) ⇒ SelectedPact
Returns a new instance of SelectedPact.
8 9 10 11 12 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 8 def initialize(pact, selectors) super(pact) @pact = pact @selectors = selectors end |
Instance Attribute Details
#pact ⇒ Object (readonly)
Returns the value of attribute pact.
6 7 8 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 6 def pact @pact end |
#selectors ⇒ Object (readonly)
Returns the value of attribute selectors.
6 7 8 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 6 def selectors @selectors end |
Class Method Details
.merge(selected_pacts) ⇒ Object
34 35 36 37 38 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 34 def self.merge(selected_pacts) latest_selected_pact = selected_pacts.sort_by(&:consumer_version_order).last selectors = selected_pacts.collect(&:selectors).reduce(&:+).sort SelectedPact.new(latest_selected_pact.pact, selectors) end |
.merge_by_consumer_version_number(selected_pacts) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 24 def self.merge_by_consumer_version_number(selected_pacts) selected_pacts .group_by{ |p| [p.consumer_name, p.consumer_version_number] } .values .collect do | selected_pacts_for_consumer_version_number | SelectedPact.merge(selected_pacts_for_consumer_version_number) end .sort end |
.merge_by_pact_version_sha(selected_pacts) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 14 def self.merge_by_pact_version_sha(selected_pacts) selected_pacts .group_by{ |p| [p.consumer_name, p.pact_version_sha] } .values .collect do | selected_pacts_for_pact_version_sha | SelectedPact.merge(selected_pacts_for_pact_version_sha) end .sort end |
Instance Method Details
#<=>(other) ⇒ Object
60 61 62 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 60 def <=> other pact <=> other.pact end |
#branches_of_selectors_for_latest_pacts ⇒ Object
44 45 46 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 44 def branches_of_selectors_for_latest_pacts selectors.branches_of_selectors_for_latest_pacts end |
#consumer_version_order ⇒ Object
56 57 58 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 56 def consumer_version_order pact.consumer_version.order end |
#latest_for_tag?(potential_tag = nil) ⇒ Boolean
52 53 54 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 52 def latest_for_tag? potential_tag = nil selectors.latest_for_tag?(potential_tag) end |
#overall_latest? ⇒ Boolean
48 49 50 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 48 def overall_latest? selectors.overall_latest? end |
#tag_names_of_selectors_for_latest_pacts ⇒ Object
40 41 42 |
# File 'lib/pact_broker/pacts/selected_pact.rb', line 40 def tag_names_of_selectors_for_latest_pacts selectors.tag_names_of_selectors_for_latest_pacts end |