Sha256: 90c00e77b0acc4c2887e4166ded8d20764d24b2c50526d640612a9dff93c2d7d

Contents?: true

Size: 668 Bytes

Versions: 2

Compression:

Stored size: 668 Bytes

Contents

module PactBroker
  module Pacts
    class Selector < Hash
      def initialize(options)
        merge!(options)
      end

      def self.overall_latest
        Selector.new(latest: true)
      end

      def self.latest_for_tag(tag)
        Selector.new(latest: true, tag: tag)
      end

      def self.one_of_tag(tag)
        Selector.new(tag: tag)
      end

      def tag
        self[:tag]
      end

      def overall_latest?
        !!(latest && !tag)
      end

      def latest_for_tag?
        !!(latest && tag)
      end

      private

      def latest?
        self[:latest]
      end

      def latest
        self[:latest]
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pact_broker-2.47.1 lib/pact_broker/pacts/selector.rb
pact_broker-2.47.0 lib/pact_broker/pacts/selector.rb