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