Class: PactBroker::Domain::Pact
- Inherits:
-
Object
- Object
- PactBroker::Domain::Pact
- Defined in:
- lib/pact_broker/domain/pact.rb
Direct Known Subclasses
Instance Attribute Summary collapse
- #consumer ⇒ Object
-
#consumer_version ⇒ Object
The ID is the pact_publication ID.
-
#consumer_version_number ⇒ Object
The ID is the pact_publication ID.
-
#created_at ⇒ Object
The ID is the pact_publication ID.
-
#head_tag_names ⇒ Object
The ID is the pact_publication ID.
-
#id ⇒ Object
The ID is the pact_publication ID.
-
#json_content ⇒ Object
The ID is the pact_publication ID.
- #latest_verification ⇒ Object
-
#pact_version_sha ⇒ Object
The ID is the pact_publication ID.
-
#provider ⇒ Object
The ID is the pact_publication ID.
-
#revision_number ⇒ Object
The ID is the pact_publication ID.
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #consumer_name ⇒ Object
- #consumer_version_tag_names ⇒ Object
- #content_hash ⇒ Object
- #content_object ⇒ Object
-
#initialize(attributes = {}) ⇒ Pact
constructor
A new instance of Pact.
- #latest_consumer_version_tag_names=(latest_consumer_version_tag_names) ⇒ Object
- #name ⇒ Object
- #pact_publication_id ⇒ Object
- #pending? ⇒ Boolean
- #provider_name ⇒ Object
- #select_pending_provider_version_tags(provider_version_tags) ⇒ Object
- #to_json(_options = {}) ⇒ Object
- #to_s ⇒ Object
- #version_and_updated_date ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ Pact
Returns a new instance of Pact.
28 29 30 31 32 33 |
# File 'lib/pact_broker/domain/pact.rb', line 28 def initialize attributes = {} @latest_verification = UnsetAttribute.new attributes.each_pair do | key, value | self.send(key.to_s + "=", value) end end |
Instance Attribute Details
#consumer ⇒ Object
43 44 45 |
# File 'lib/pact_broker/domain/pact.rb', line 43 def consumer consumer_version.pacticipant end |
#consumer_version ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def consumer_version @consumer_version end |
#consumer_version_number ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def consumer_version_number @consumer_version_number end |
#created_at ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def created_at @created_at end |
#head_tag_names ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def head_tag_names @head_tag_names end |
#id ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def id @id end |
#json_content ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def json_content @json_content end |
#latest_verification ⇒ Object
55 56 57 |
# File 'lib/pact_broker/domain/pact.rb', line 55 def latest_verification get_attribute_if_set :latest_verification end |
#pact_version_sha ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def pact_version_sha @pact_version_sha end |
#provider ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def provider @provider end |
#revision_number ⇒ Object
The ID is the pact_publication ID
17 18 19 |
# File 'lib/pact_broker/domain/pact.rb', line 17 def revision_number @revision_number end |
Instance Method Details
#<=>(other) ⇒ Object
101 102 103 104 105 |
# File 'lib/pact_broker/domain/pact.rb', line 101 def <=> other self_fields = [consumer_name.downcase, provider_name.downcase, consumer_version.order || 0] other_fields = [other.consumer_name.downcase, other.provider_name.downcase, other.consumer_version.order || 0] self_fields <=> other_fields end |
#consumer_name ⇒ Object
35 36 37 |
# File 'lib/pact_broker/domain/pact.rb', line 35 def consumer_name consumer.name end |
#consumer_version_tag_names ⇒ Object
47 48 49 |
# File 'lib/pact_broker/domain/pact.rb', line 47 def consumer_version_tag_names consumer_version..collect(&:name) end |
#content_hash ⇒ Object
75 76 77 |
# File 'lib/pact_broker/domain/pact.rb', line 75 def content_hash JSON.parse(json_content, PACT_PARSING_OPTIONS) end |
#content_object ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/pact_broker/domain/pact.rb', line 79 def content_object @content_object ||= begin PactBroker::Pacts::Content.from_json(json_content) rescue PactBroker::Pacts::Content.new end end |
#latest_consumer_version_tag_names=(latest_consumer_version_tag_names) ⇒ Object
51 52 53 |
# File 'lib/pact_broker/domain/pact.rb', line 51 def latest_consumer_version_tag_names= latest_consumer_version_tag_names @latest_consumer_version_tag_names = latest_consumer_version_tag_names end |
#name ⇒ Object
67 68 69 |
# File 'lib/pact_broker/domain/pact.rb', line 67 def name "Pact between #{consumer.name} (#{consumer_version_number}) and #{provider.name}" end |
#pact_publication_id ⇒ Object
87 88 89 |
# File 'lib/pact_broker/domain/pact.rb', line 87 def pact_publication_id id end |
#pending? ⇒ Boolean
97 98 99 |
# File 'lib/pact_broker/domain/pact.rb', line 97 def pending? !pact_version.verified_successfully_by_any_provider_version? end |
#provider_name ⇒ Object
39 40 41 |
# File 'lib/pact_broker/domain/pact.rb', line 39 def provider_name provider.name end |
#select_pending_provider_version_tags(provider_version_tags) ⇒ Object
91 92 93 94 95 |
# File 'lib/pact_broker/domain/pact.rb', line 91 def () = db_model.pact_version.() = db_model.pact_version.() - - end |
#to_json(_options = {}) ⇒ Object
63 64 65 |
# File 'lib/pact_broker/domain/pact.rb', line 63 def to_json = {} json_content end |
#to_s ⇒ Object
59 60 61 |
# File 'lib/pact_broker/domain/pact.rb', line 59 def to_s "Pact: consumer=#{consumer.name} provider=#{provider.name}" end |
#version_and_updated_date ⇒ Object
71 72 73 |
# File 'lib/pact_broker/domain/pact.rb', line 71 def version_and_updated_date "Version #{consumer_version_number} - #{created_at.to_time.localtime.strftime("%d/%m/%Y")}" end |