Module: Jumbotron::Scheduling::DesiredSchedules
- Defined in:
- app/scheduling/jumbotron/scheduling/desired_schedules.rb
Constant Summary collapse
- GAME_JOB_CLASS_NAME =
"Jumbotron::GameUpdateJob"- LINE_JOB_CLASS_NAME =
"Jumbotron::LineUpdateJob"
Class Method Summary collapse
- .call ⇒ Object
- .definition_for(adapter, policy) ⇒ Object
- .ensure_adapters_loaded! ⇒ Object
- .job_class_name_for(policy) ⇒ Object
- .schedules_for(adapter) ⇒ Object
Class Method Details
.call ⇒ Object
11 12 13 14 |
# File 'app/scheduling/jumbotron/scheduling/desired_schedules.rb', line 11 def call ensure_adapters_loaded! Adapters::Registry.registered.flat_map { |adapter| schedules_for(adapter) } end |
.definition_for(adapter, policy) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/scheduling/jumbotron/scheduling/desired_schedules.rb', line 20 def definition_for(adapter, policy) return if adapter.discovery_ids.include?(policy.id) return if policy.cadence.nil? job_class_name = job_class_name_for(policy) return if job_class_name.nil? ScheduleDefinition.new( id: Owned.id(adapter.adapter_id, policy.id), job_class_name: job_class_name, arguments: { "adapter_id" => adapter.adapter_id.to_s, "policy_id" => policy.id.to_s }, cadence: policy.cadence ) end |
.ensure_adapters_loaded! ⇒ Object
46 47 48 |
# File 'app/scheduling/jumbotron/scheduling/desired_schedules.rb', line 46 def ensure_adapters_loaded! Adapters::Registry.ensure_loaded! end |
.job_class_name_for(policy) ⇒ Object
38 39 40 41 42 43 44 |
# File 'app/scheduling/jumbotron/scheduling/desired_schedules.rb', line 38 def job_class_name_for(policy) if Services::Adapters::ResolveGameUpdatePolicy::UPDATE_POLICY_TYPES.include?(policy.type) GAME_JOB_CLASS_NAME elsif Services::Adapters::ResolveLineUpdatePolicy::LINE_POLICY_TYPES.include?(policy.type) LINE_JOB_CLASS_NAME end end |
.schedules_for(adapter) ⇒ Object
16 17 18 |
# File 'app/scheduling/jumbotron/scheduling/desired_schedules.rb', line 16 def schedules_for(adapter) adapter.policies.values.filter_map { |policy| definition_for(adapter, policy) } end |