Class: PgEventstore::Web::Subscriptions::SubscriptionsToSetAssociation

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_eventstore/web/subscriptions/subscriptions_to_set_association.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(subscriptions_set:, subscriptions:) ⇒ SubscriptionsToSetAssociation



16
17
18
19
# File 'lib/pg_eventstore/web/subscriptions/subscriptions_to_set_association.rb', line 16

def initialize(subscriptions_set:, subscriptions:)
  @subscriptions_set = subscriptions_set
  @subscriptions = subscriptions
end

Instance Attribute Details

#subscriptionsObject

Returns the value of attribute subscriptions.



12
13
14
# File 'lib/pg_eventstore/web/subscriptions/subscriptions_to_set_association.rb', line 12

def subscriptions
  @subscriptions
end

#subscriptions_setObject

Returns the value of attribute subscriptions_set.



9
10
11
# File 'lib/pg_eventstore/web/subscriptions/subscriptions_to_set_association.rb', line 9

def subscriptions_set
  @subscriptions_set
end

Instance Method Details

#associationHash{PgEventstore::SubscriptionsSet => Array<PgEventstore::Subscription>}

rubocop:disable Lint/RedundantWithObject,Lint/UnexpectedBlockArity



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pg_eventstore/web/subscriptions/subscriptions_to_set_association.rb', line 23

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