class OrderUp::Resque::JsonJob

Public Class Methods

deserialize(job_data) click to toggle source
# File lib/order_up/resque.rb, line 29
def self.deserialize(job_data)
  data = JSON.parse(job_data)
  class_name = data.delete(ENCAPSULATED_CLASS)
  class_name.constantize.allocate.tap do |obj|
    data.each do |key, value|
      obj.instance_variable_set(:"@#{key}", value)
    end
  end
end
perform(job_data) click to toggle source
# File lib/order_up/resque.rb, line 22
def self.perform(job_data)
  deserialize(job_data).run
end
serialize(job) click to toggle source
# File lib/order_up/resque.rb, line 25
def self.serialize(job)
  job.as_json.merge(ENCAPSULATED_CLASS => job.class.name).to_json
end