annotation CrSerializer::Annotations::PostDeserialize

Overview

Defines a callback method(s) that are ran directly after the object has been deserialized.

record Example, name : String, first_name : String?, last_name : String? do
  include CrSerializer

  @[CRS::PostDeserialize]
  def split_name : Nil
    @first_name, @last_name = @name.split(' ')
  end
end

obj = Example.deserialize JSON, %({"name":"Jon Snow"})
obj.name       # => Jon Snow
obj.first_name # => Jon
obj.last_name  # => Snow

Defined in:

annotations.cr