Class: AcidicJob::Serializers::JobSerializer

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

Instance Method Summary collapse

Instance Method Details

#deserialize(hash) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/acidic_job/serializers/job_serializer.rb', line 12

def deserialize(hash)
  job = ActiveJob::Base.deserialize(hash)
  job.send(:deserialize_arguments_if_needed)
  # this is a shim to ensure we can work with Ruby 2.7 as well as 3.0+
  # :nocov:
  if job.arguments.last.is_a?(Hash)
    *args, kwargs = job.arguments
  else
    args = job.arguments
    kwargs = {}
  end
  # :nocov:
  job.instance_variable_set(:@__acidic_job_args, args)
  job.instance_variable_set(:@__acidic_job_kwargs, kwargs)

  job
end

#serialize(job) ⇒ Object



8
9
10
# File 'lib/acidic_job/serializers/job_serializer.rb', line 8

def serialize(job)
  super(job.serialize)
end

#serialize?(argument) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/acidic_job/serializers/job_serializer.rb', line 30

def serialize?(argument)
  defined?(::ActiveJob::Base) && argument.class < ::ActiveJob::Base
end