Class: JobRunner
  
  
  
  
    - Inherits:
 
    - 
      Object
      
        
        show all
      
      
 
    
  
  
    
  
    
  
  
  
    - Defined in:
 
    - backend/app/lib/job_runner.rb
 
  
Defined Under Namespace
  
    
  
    
      Classes: BackgroundJobError, JobRunnerNotFound
    
  
    
  
  
    
      Class Method Summary
      (collapse)
    
    
  
    
      Instance Method Summary
      (collapse)
    
    
  
  Constructor Details
  
    
  
  
    - (JobRunner) initialize(job) 
  
  
  
  
    Returns a new instance of JobRunner
   
 
  
  
    
      
28
29
30
31
32
33 
     | 
    
      # File 'backend/app/lib/job_runner.rb', line 28
def initialize(job)
  @job = job
  RequestContext.open(:repo_id => @job.repo_id) do
    @json = Job.to_jsonmodel(job)
  end
end
     | 
  
 
  
 
  
    Class Method Details
    
      
  
  
    + (Object) for(job) 
  
  
  
  
    
      
7
8
9
10
11
12
13
14 
     | 
    
      # File 'backend/app/lib/job_runner.rb', line 7
def self.for(job)
  @runners.each do |runner|
    runner = runner.instance_for(job)
    return runner if runner
  end
  raise JobRunnerNotFound.new("No suitable runner found for #{job.job_type}")
end
     | 
  
 
    
      
  
  
    + (Object) inherited(subclass) 
  
  
  
  
    
      
23
24
25 
     | 
    
      # File 'backend/app/lib/job_runner.rb', line 23
def self.inherited(subclass)
  JobRunner.register_runner(subclass)
end
 
     | 
  
 
    
      
  
  
    + (Object) register_runner(subclass) 
  
  
  
  
    
      
17
18
19
20 
     | 
    
      # File 'backend/app/lib/job_runner.rb', line 17
def self.register_runner(subclass)
  @runners ||= []
  @runners.unshift(subclass)
end
 
     | 
  
 
    
   
  
    Instance Method Details
    
      
  
  
    - (Object) canceled(canceled) 
  
  
  
  
    
      
36
37
38
39 
     | 
    
      # File 'backend/app/lib/job_runner.rb', line 36
def canceled(canceled)
  @job_canceled = canceled
  self
end
 
     | 
  
 
    
      
  
  
    - (Object) run 
  
  
  
  
    
      
42 
     | 
    
      # File 'backend/app/lib/job_runner.rb', line 42
def run; end
 
     |