Sha256: 041d9bf1b5805a59fbc1ba846f287a92523f6077cc2d599e29a99a2f855cb6b6
Contents?: true
Size: 1.09 KB
Versions: 7
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true module PgEventstore module Web module Subscriptions class SubscriptionsToSetAssociation attr_reader :subscriptions_set, :subscriptions # @param subscriptions_set [Array<PgEventstore::SubscriptionsSet>] # @param subscriptions [Array<PgEventstore::Subscription>] def initialize(subscriptions_set:, subscriptions:) @subscriptions_set = subscriptions_set @subscriptions = subscriptions end # @return [Hash{PgEventstore::SubscriptionsSet => Array<PgEventstore::Subscription>}] def association @association ||= begin association = subscriptions.group_by do |subscription| set = subscriptions_set.find { |set| set.id == subscription.locked_by } set || PgEventstore::SubscriptionsSet.new end (subscriptions_set - association.keys).each_with_object(association) do |subscriptions_set| association[subscriptions_set] = [] end end end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems