Class: DispatchPolicy::DispatchContext

Inherits:
Object
  • Object
show all
Defined in:
lib/dispatch_policy/dispatch_context.rb

Instance Method Summary collapse

Constructor Details

#initialize(policy:, batch:) ⇒ DispatchContext

Returns a new instance of DispatchContext.



5
6
7
8
9
10
# File 'lib/dispatch_policy/dispatch_context.rb', line 5

def initialize(policy:, batch:)
  @policy     = policy
  @cache      = {}
  @partitions = Hash.new { |h, k| h[k] = {} }
  batch.each { |staged| resolve_for(staged) }
end

Instance Method Details

#for(staged) ⇒ Object



12
13
14
# File 'lib/dispatch_policy/dispatch_context.rb', line 12

def for(staged)
  @cache[staged.id]
end

#partitions_for(staged) ⇒ Object



20
21
22
# File 'lib/dispatch_policy/dispatch_context.rb', line 20

def partitions_for(staged)
  @partitions[staged.id]
end

#primary_partition_for(staged) ⇒ Object



24
25
26
# File 'lib/dispatch_policy/dispatch_context.rb', line 24

def primary_partition_for(staged)
  @partitions[staged.id].values.first
end

#record_partitions(pairs, gate:) ⇒ Object



16
17
18
# File 'lib/dispatch_policy/dispatch_context.rb', line 16

def record_partitions(pairs, gate:)
  pairs.each { |staged, partition_key| @partitions[staged.id][gate.to_sym] = partition_key.to_s }
end