Sha256: 4ea13cf6ed7fc8dec6ee69f55c469e0cc9d9986d635e870813ff4f9cb8f63871

Contents?: true

Size: 1.93 KB

Versions: 42

Compression:

Stored size: 1.93 KB

Contents

require "pact_broker/pacts/selector"

module PactBroker
  module Pacts
    class Selectors < Array
      def initialize *selectors
        super([*selectors].flatten)
      end

      def self.create_for_all_of_each_tag(tag_names)
        Selectors.new(tag_names.collect{ | tag_name | Selector.all_for_tag(tag_name) })
      end

      def self.create_for_latest_of_each_tag(tag_names)
        Selectors.new(tag_names.collect{ | tag_name | Selector.latest_for_tag(tag_name) })
      end

      def self.create_for_latest_for_tag(tag_name)
        Selectors.new([Selector.latest_for_tag(tag_name)])
      end

      def self.create_for_latest_of_each_branch(branches)
        Selectors.new(branches.collect{ | branch | Selector.latest_for_branch(branch) })
      end

      def self.create_for_latest_for_branch(branch)
        Selectors.new([Selector.latest_for_branch(branch)])
      end

      def self.create_for_overall_latest
        Selectors.new([Selector.overall_latest])
      end

      def resolve(consumer_version)
        Selectors.new(collect{ |selector| selector.resolve(consumer_version) })
      end

      def resolve_for_environment(consumer_version, environment)
        Selectors.new(collect{ |selector| selector.resolve_for_environment(consumer_version, environment) })
      end

      def + other
        Selectors.new(super)
      end

      def sort
        Selectors.new(super)
      end

      def overall_latest?
        any?(&:overall_latest?)
      end

      def latest_for_tag? potential_tag = nil
        any? { | selector | selector.latest_for_tag?(potential_tag) }
      end

      def tag_names_of_selectors_for_all_pacts
        select(&:all_for_tag?).collect(&:tag).uniq
      end

      def tag_names_of_selectors_for_latest_pacts
        select(&:latest_for_tag?).collect(&:tag).uniq
      end

      def branches_of_selectors_for_latest_pacts
        select(&:latest_for_branch?).collect(&:branch).uniq
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
pact_broker-2.112.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.111.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.109.1 lib/pact_broker/pacts/selectors.rb
pact_broker-2.109.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.108.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.107.1 lib/pact_broker/pacts/selectors.rb
pact_broker-2.107.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.107.0.beta.1 lib/pact_broker/pacts/selectors.rb
pact_broker-2.106.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.105.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.104.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.103.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.102.2 lib/pact_broker/pacts/selectors.rb
pact_broker-2.102.1 lib/pact_broker/pacts/selectors.rb
pact_broker-2.102.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.101.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.100.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.99.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.98.0 lib/pact_broker/pacts/selectors.rb
pact_broker-2.97.0 lib/pact_broker/pacts/selectors.rb