Class: WorkerSerializer

Inherits:
ActiveJob::Serializers::ObjectSerializer
  • Object
show all
Defined in:
lib/acidic_job/serializer.rb

Instance Method Summary collapse

Instance Method Details

#deserialize(hash) ⇒ Object



17
18
19
20
# File 'lib/acidic_job/serializer.rb', line 17

def deserialize(hash)
  worker_class = hash["class"].constantize
  worker_class.new(*hash["args"], **hash["kwargs"])
end

#serialize(worker) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/acidic_job/serializer.rb', line 8

def serialize(worker)
  # {"_aj_serialized"=>"WorkerSerializer", "class"=>"SuccessfulArgWorker", "args"=>[123], "kwargs"=>{}}]
  super(
    "class" => worker.class.name,
    "args" => worker.instance_variable_get(:@__acidic_job_args),
    "kwargs" => worker.instance_variable_get(:@__acidic_job_kwargs)
  )
end

#serialize?(argument) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/acidic_job/serializer.rb', line 22

def serialize?(argument)
  defined?(Sidekiq) && argument.class.include?(Sidekiq::Worker)
end