class ActiveJob::Serializers::ObjectSerializer
Base — класс для сериализации и десериализации пользовательских объектов.
Пример:
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
Публичные методы класса
# File activejob/lib/active_job/serializers/object_serializer.rb, line 31
def initialize
super
@template = { Serializers::OBJECT_SERIALIZER_KEY => self.class.name }.freeze
end Вызывает метод суперкласса
Публичные методы экземпляра
# File activejob/lib/active_job/serializers/object_serializer.rb, line 47
def deserialize(hash)
raise NotImplementedError, "#{self.class.name} should implement a public #deserialize(hash) method"
end Десериализует аргумент из примитивного типа JSON.
# File activejob/lib/active_job/serializers/object_serializer.rb, line 42 def serialize(hash) @template.merge(hash) end
Сериализует аргумент в примитивный тип JSON.
# File activejob/lib/active_job/serializers/object_serializer.rb, line 37 def serialize?(argument) argument.is_a?(klass) end
Определяет, следует ли сериализовать аргумент с помощью сериализатора.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.