Module: LcpRuby::BackgroundJobs::Setup

Defined in:
lib/lcp_ruby/background_jobs/setup.rb

Class Method Summary collapse

Class Method Details

.apply!(loader) ⇒ Object



4
5
6
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
32
33
34
35
36
37
38
39
# File 'lib/lcp_ruby/background_jobs/setup.rb', line 4

def self.apply!(loader)
  Declarative::Registry.register_built_ins!

  sources = []

  # Static source always loads if job files exist
  if loader.job_definitions.any?
    sources << StaticSource.new(loader.job_definitions)
  end

  # Additional source based on configuration
  config_source = LcpRuby.configuration.job_source
  case config_source
  when :model
    model_src = setup_model!(loader)
    sources << model_src if model_src
  when :host
    host_src = setup_host!
    sources << host_src if host_src
  end

  return if sources.empty?

  # Validate job execution model contract
  validate_execution_model!(loader)

  resolver = Resolver.new(sources)
  Registry.set_resolver(resolver)
  Registry.mark_available!

  # Install event triggers
  Triggers::TriggerInstaller.install!(resolver) if defined?(Triggers::TriggerInstaller)

  # Sync schedules
  sync_schedules!(resolver)
end