Base class for serializing and deserializing custom objects.

Example:

class MoneySerializer < ActiveJob::Serializers::ObjectSerializer
  def serialize(money)
    super("amount" => money.amount, "currency" => money.currency)
  end

  def deserialize(hash)
    Money.new(hash["amount"], hash["currency"])
  end

  def klass
    Money
  end
end

Methods

Included Modules

Instance Public methods

deserialize(hash)

Deserializes an argument from a JSON primitive type.

📝 Source code
# File activejob/lib/active_job/serializers/object_serializer.rb, line 43
      def deserialize(hash)
        raise NotImplementedError, "#{self.class.name} should implement a public #deserialize(hash) method"
      end
🔎 See on GitHub

klass()

The class of the object that will be serialized.

📝 Source code
# File activejob/lib/active_job/serializers/object_serializer.rb, line 48
      def klass
        raise NotImplementedError, "#{self.class.name} should implement a public #klass method"
      end
🔎 See on GitHub

serialize(hash)

Serializes an argument to a JSON primitive type.

📝 Source code
# File activejob/lib/active_job/serializers/object_serializer.rb, line 37
      def serialize(hash)
        hash[Arguments::OBJECT_SERIALIZER_KEY] = self.class.name
        hash
      end
🔎 See on GitHub

serialize?(argument)

Determines if an argument should be serialized by a serializer.

📝 Source code
# File activejob/lib/active_job/serializers/object_serializer.rb, line 32
      def serialize?(argument)
        argument.is_a?(klass)
      end
🔎 See on GitHub