Class: OtbJobQueue::JobsSequencer
- Inherits:
-
Object
- Object
- OtbJobQueue::JobsSequencer
- Defined in:
- lib/otb_job_queue/jobs_sequencer.rb
Overview
Sequences jobs order based on their dependencies
Defined Under Namespace
Classes: CircularDependencyError, SelfDependencyError
Instance Method Summary collapse
-
#call(jobs_input) ⇒ String
Parses an input of jobs into a string or raises Errors.
-
#initialize(parser) ⇒ JobsSequencer
constructor
Creates a new instance of the JobsSequencer with a parser as a param.
Constructor Details
#initialize(parser) ⇒ JobsSequencer
Creates a new instance of the JobsSequencer with a parser as a param
11 12 13 |
# File 'lib/otb_job_queue/jobs_sequencer.rb', line 11 def initialize(parser) @parser = parser end |
Instance Method Details
#call(jobs_input) ⇒ String
Parses an input of jobs into a string or raises Errors
22 23 24 25 26 27 28 |
# File 'lib/otb_job_queue/jobs_sequencer.rb', line 22 def call(jobs_input) jobs_to_sequence = @parser.call(jobs_input) check_self_dependecies(jobs_to_sequence) jobs_to_sequence.tsort.join rescue TSort::Cyclic => error raise CircularDependencyError, "Jobs can't have circular dependencies: #{error.message}" end |