class Karousel::Job

Implements a job to be placed on karousel

Attributes

client_job[R]

Public Class Methods

new(client_job) click to toggle source

STATUS = { init: 1, sent: 2, success: 3, failure: 4 }

# File lib/karousel/job.rb, line 9
def initialize(client_job)
  unless client_job.is_a?(Karousel::ClientJob)
    raise(TypeError, 'Unknown client job type')
  end
  @client_job = client_job
end

Public Instance Methods

finished?() click to toggle source
# File lib/karousel/job.rb, line 37
def finished?
  @client_job.finished?
end
process() click to toggle source
# File lib/karousel/job.rb, line 41
def process
  is_ok = @client_job.process
  self.status = (is_ok ? STATUS[:success] : STATUS[:failure])
  is_ok
end
send() click to toggle source
# File lib/karousel/job.rb, line 31
def send
  is_ok = @client_job.send
  self.status = (is_ok ? STATUS[:sent] : STATUS[:failure])
  is_ok
end
status() click to toggle source
# File lib/karousel/job.rb, line 16
def status
  @status = @client_job.status
  unless [1, 2, 3, 4].include?(@status)
    raise(TypeError, 'Status must be an integer between 1 and 4')
  end
  @status
end
status=(new_status) click to toggle source
# File lib/karousel/job.rb, line 24
def status=(new_status)
  unless [1, 2, 3, 4].include?(new_status)
    raise(TypeError, 'Status must be an integer between 1 and 4')
  end
  @client_job.status = new_status
end