class Qmin::Resque::BaseJob

Defines a handy base class for Resque workers for the following pattern:

Constants

ImplementationMissing
MustRespondToFindMethodError

Public Class Methods

model(model) click to toggle source
# File lib/qmin/resque/base_job.rb, line 19
def self.model(model)
  if model.respond_to? :find
    @@model = model
  else
    raise MustRespondToFindMethodError
  end
end
new(id, *args) click to toggle source
# File lib/qmin/resque/base_job.rb, line 27
def initialize(id, *args)
  @id = id
end
perform(*args) click to toggle source

delegate perform to job instance

# File lib/qmin/resque/base_job.rb, line 15
def self.perform(*args)
  new(*args).perform
end
queue() click to toggle source
# File lib/qmin/resque/base_job.rb, line 47
def self.queue
  # automatic queue naming
  @queue ||= self.name.to_queue_name
end

Public Instance Methods

find_instance(id) click to toggle source
# File lib/qmin/resque/base_job.rb, line 39
def find_instance(id)
  model.find(id)
end
instance() click to toggle source
# File lib/qmin/resque/base_job.rb, line 35
def instance
  @instance ||= find_instance(@id)
end
model() click to toggle source
# File lib/qmin/resque/base_job.rb, line 43
def model
  @@model
end
perform() click to toggle source
# File lib/qmin/resque/base_job.rb, line 31
def perform
  raise ImplementationMissing.new("Please implement #perform instance method for job: #{self.class.name}")
end