Class: Castkit::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/castkit/serializer.rb

Overview

Abstract base class for defining custom serializers for Castkit::DataObject instances.

Handles circular reference detection and provides a consistent ‘call` API.

Subclasses must implement an instance method ‘#call` that returns a hash-like representation.

Examples:

Usage

class CustomSerializer < Castkit::Serializer
  private

  def call
    { type: obj.class.name, data: obj.to_h }
  end
end

CustomSerializer.call(user_dto)

Direct Known Subclasses

DefaultSerializer

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#objCastkit::DataObject (readonly)

Returns the object being serialized.

Returns:



35
36
37
# File 'lib/castkit/serializer.rb', line 35

def obj
  @obj
end

Class Method Details

.call(obj, visited: nil) ⇒ Object

Entrypoint for serializing an object.

Parameters:

  • obj (Castkit::DataObject)

    the object to serialize

  • visited (Set, nil) (defaults to: nil)

    used to track visited object IDs

Returns:

  • (Object)

    result of custom serialization



29
30
31
# File 'lib/castkit/serializer.rb', line 29

def call(obj, visited: nil)
  new(obj, visited: visited).send(:serialize)
end