Sha256: 790176389b6c05950ef740305780ea67ed6296f923606f27f4a064923b2bccc5

Contents?: true

Size: 1.15 KB

Versions: 11

Compression:

Stored size: 1.15 KB

Contents

require 'sequel'

module PactBroker
  module Pacts
    class PactVersion < Sequel::Model(:pact_versions)
      one_to_many :pact_publications, :reciprocal => :pact_version

      def name
        "Pact between #{consumer_name} and #{provider_name}"
      end

      def provider_name
        pact_publications.last.provider.name
      end

      def consumer_name
        pact_publications.last.consumer.name
      end

      def latest_consumer_version
        consumer_versions.last
      end

      def latest_pact_publication
        PactBroker::Pacts::LatestPactPublicationsByConsumerVersion
          .where(pact_version_id: id)
          .order(:consumer_version_order)
          .last || PactBroker::Pacts::AllPactPublications
          .where(pact_version_id: id)
          .order(:consumer_version_order)
          .last
      end

      def consumer_versions
        PactBroker::Domain::Version.where(id: PactBroker::Pacts::PactPublication.select(:consumer_version_id).where(pact_version_id: id)).order(:order)
      end

      def latest_consumer_version_number
        latest_consumer_version.number
      end
    end

    PactVersion.plugin :timestamps
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pact_broker-2.20.0 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.19.2 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.19.1 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.19.0 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.18.0 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.17.1 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.17.0 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.16.1 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.16.0 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.15.0 lib/pact_broker/pacts/pact_version.rb
pact_broker-2.14.0 lib/pact_broker/pacts/pact_version.rb