Class: RubyReactor::Web::CoordinationSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_reactor/web/coordination_serializer.rb

Class Method Summary collapse

Class Method Details

.build(reactor_class, inputs:, context_id:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ruby_reactor/web/coordination_serializer.rb', line 7

def build(reactor_class, inputs:, context_id:)
  return {} unless reactor_class

  adapter = RubyReactor.configuration.storage_adapter
  normalized_inputs = normalize_inputs(inputs)
  result = {}

  if reactor_class.lock_config
    result[:lock] = build_lock(reactor_class.lock_config, normalized_inputs, context_id, adapter)
  end

  if reactor_class.semaphore_config
    result[:semaphore] = build_semaphore(reactor_class.semaphore_config, normalized_inputs, adapter)
  end

  if reactor_class.rate_limit_config
    result[:rate_limit] = build_rate_limit(reactor_class.rate_limit_config, normalized_inputs, adapter)
  end

  if reactor_class.period_config
    result[:period] = build_period(reactor_class.period_config, normalized_inputs, adapter)
  end

  result
end