Class: Castkit::Serializers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/castkit/serializers/base.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::Serializers::Base
  private

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

CustomSerializer.call(user_dto)

Direct Known Subclasses

DefaultSerializer

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#objectCastkit::DataObject (readonly)

Returns the object being serialized.

Returns:



36
37
38
# File 'lib/castkit/serializers/base.rb', line 36

def object
  @object
end

Class Method Details

.call(object, visited: nil) ⇒ Object

Entrypoint for serializing an object.

Parameters:

  • object (Castkit::DataObject)

    the object to serialize

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

    used to track visited object IDs

Returns:

  • (Object)

    result of custom serialization



30
31
32
# File 'lib/castkit/serializers/base.rb', line 30

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