Sha256: 99e9a09ad05973f2e5ca40da736aedf8c6139cd51376bd4c7cb1d8c6f50b31fb

Contents?: true

Size: 1 KB

Versions: 37

Compression:

Stored size: 1 KB

Contents

require 'pact_broker/db'
require 'pact_broker/messages'
require 'pact_broker/repositories/helpers'

module PactBroker

  module Domain

    class Pacticipant < Sequel::Model

      include Messages

      set_primary_key :id

      one_to_many :versions, :order => :order, :reciprocal => :pacticipant
      one_to_many :labels, :order => :name, :reciprocal => :pacticipant
      one_to_many :pacts

      dataset_module do
        include PactBroker::Repositories::Helpers

        def label label_name
          filter = name_like(Sequel[:labels][:name], label_name)
          join(:labels, {pacticipant_id: :id}).where(filter)
        end
      end

      def latest_version
        versions.last
      end

      def to_s
        "Pacticipant: id=#{id}, name=#{name}"
      end

      def validate
        messages = []
        messages << message('errors.validation.attribute_missing', attribute: 'name') unless name
        messages
      end
    end

    Pacticipant.plugin :timestamps, update_on_create: true
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
pact_broker-2.24.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.23.4 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.23.3 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.23.2 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.23.1 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.23.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.22.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.21.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.20.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.19.2 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.19.1 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.19.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.18.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.17.1 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.17.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.16.1 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.16.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.15.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.14.0 lib/pact_broker/domain/pacticipant.rb
pact_broker-2.13.1 lib/pact_broker/domain/pacticipant.rb