Class: PactBroker::Pacts::PactVersion
- Inherits:
-
Object
- Object
- PactBroker::Pacts::PactVersion
- Defined in:
- lib/pact_broker/pacts/pact_version.rb
Instance Method Summary collapse
- #consumer_name ⇒ Object
- #latest_consumer_version_number ⇒ Object
- #latest_pact_publication ⇒ Object
- #name ⇒ Object
- #provider_name ⇒ Object
- #select_provider_tags_with_successful_verifications(tags) ⇒ Object
- #select_provider_tags_with_successful_verifications_from_another_branch_from_before_this_branch_created(tags) ⇒ Object
- #set_interactions_and_messages_counts! ⇒ Object
- #verified_successfully_by_any_provider_version? ⇒ Boolean
Instance Method Details
#consumer_name ⇒ Object
95 96 97 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 95 def consumer_name pact_publications.last.consumer.name end |
#latest_consumer_version_number ⇒ Object
107 108 109 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 107 def latest_consumer_version_number latest_consumer_version.number end |
#latest_pact_publication ⇒ Object
99 100 101 102 103 104 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 99 def latest_pact_publication PactBroker::Pacts::PactPublication .for_pact_version_id(id) .remove_overridden_revisions_from_complete_query .latest || PactBroker::Pacts::PactPublication.for_pact_version_id(id).latest end |
#name ⇒ Object
87 88 89 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 87 def name "Pact between #{consumer_name} and #{provider_name}" end |
#provider_name ⇒ Object
91 92 93 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 91 def provider_name pact_publications.last.provider.name end |
#select_provider_tags_with_successful_verifications(tags) ⇒ Object
137 138 139 140 141 142 143 144 145 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 137 def () .select do | tag | PactVersion.where(Sequel[:pact_versions][:id] => id) .join_successful_verifications .join_provider_versions .(tag) .any? end end |
#select_provider_tags_with_successful_verifications_from_another_branch_from_before_this_branch_created(tags) ⇒ Object
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 111 def () .select do | tag | first_tag_with_name = PactBroker::Domain::Tag.where(pacticipant_id: provider_id, name: tag).order(:created_at).first verifications_join = { Sequel[:verifications][:pact_version_id] => Sequel[:pact_versions][:id], Sequel[:verifications][:success] => true } = { Sequel[:tags][:version_id] => Sequel[:versions][:id], } query = PactVersion.where(Sequel[:pact_versions][:id] => id) .join(:verifications, verifications_join) .join(:versions, Sequel[:versions][:id] => Sequel[:verifications][:provider_version_id]) .join(:tags, ) do Sequel.lit("tags.name != ?", tag) end if first_tag_with_name query = query.where { Sequel[:verifications][:created_at] < first_tag_with_name.created_at } end query.any? end end |
#set_interactions_and_messages_counts! ⇒ Object
153 154 155 156 157 158 159 160 161 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 153 def if interactions_count.nil? || .nil? content_object = PactBroker::Pacts::Content.from_json(content) update( messages_count: content_object.&.count || 0, interactions_count: content_object.interactions&.count || 0 ) end end |
#verified_successfully_by_any_provider_version? ⇒ Boolean
147 148 149 150 151 |
# File 'lib/pact_broker/pacts/pact_version.rb', line 147 def verified_successfully_by_any_provider_version? PactVersion.where(Sequel[:pact_versions][:id] => id) .join_successful_verifications .any? end |