Sha256: 71658c00cff28cf3f46c32851e587f18d79e65a3a8bec62ebabd26e385530c27

Contents?: true

Size: 648 Bytes

Versions: 5

Compression:

Stored size: 648 Bytes

Contents

# frozen_string_literal: true

require "active_job/serializers/object_serializer"

module AcidicJob
  module Serializers
    class ActiveKiqSerializer < ::ActiveJob::Serializers::ObjectSerializer
      def serialize(worker)
        super(
          "job_class" => worker.class.name,
          "arguments" => Arguments.serialize(worker.arguments),
        )
      end

      def deserialize(hash)
        worker_class = hash["job_class"].constantize
        worker_class.new(*hash["arguments"])
      end

      def serialize?(argument)
        defined?(::AcidicJob::ActiveKiq) && argument.class < ::AcidicJob::ActiveKiq
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
acidic_job-0.9.0 lib/acidic_job/serializers/active_kiq_serializer.rb
acidic_job-0.8.8 lib/acidic_job/serializers/active_kiq_serializer.rb
acidic_job-0.8.7 lib/acidic_job/serializers/active_kiq_serializer.rb
acidic_job-0.8.5 lib/acidic_job/serializers/active_kiq_serializer.rb
acidic_job-0.8.4 lib/acidic_job/serializers/active_kiq_serializer.rb