annotation Athena::Serializer::Annotations::PreSerialize
#
Defines a callback method that is executed directly before the object has been serialized.
Example#
@[ASRA::ExclusionPolicy(:all)]
class Example
include ASR::Serializable
def initialize; end
@[ASRA::Expose]
@name : String?
property first_name : String = "Jon"
property last_name : String = "Snow"
@[ASRA::PreSerialize]
private def pre_serialize : Nil
@name = "#{first_name} #{last_name}"
end
@[ASRA::PostSerialize]
private def post_serialize : Nil
@name = nil
end
end
ASR.serializer.serialize Example.new, :json # => {"name":"Jon Snow"}