module ActiveJob::Core::ClassMethods

def deserialize(job_data)

Creates a new job instance from a hash created with +serialize+
def deserialize(job_data)
  job                      = job_data['job_class'].constantize.new
  job.job_id               = job_data['job_id']
  job.queue_name           = job_data['queue_name']
  job.serialized_arguments = job_data['arguments']
  job.locale               = job_data['locale'] || I18n.locale
  job
end

def set(options={})

VideoJob.set(queue: :some_queue, wait_until: Time.now.tomorrow).perform_later(Video.last)
VideoJob.set(queue: :some_queue, wait: 5.minutes).perform_later(Video.last)
VideoJob.set(wait_until: Time.now.tomorrow).perform_later(Video.last)
VideoJob.set(wait: 5.minutes).perform_later(Video.last)
VideoJob.set(queue: :some_queue).perform_later(Video.last)

==== Examples

* :queue - Enqueues the job on the specified queue
* :wait_until - Enqueues the job at the time specified
* :wait - Enqueues the job with the specified delay
==== Options

preconfigured options
perform_later with the job arguments to enqueue the job with the
Creates a job preconfigured with the given options. You can call
def set(options={})
  ConfiguredJob.new(self, options)
end