Method: Castkit::Contract::DataObject#to_dataobject

Defined in:
lib/castkit/contract/data_object.rb

#to_dataobjectClass<Castkit::DataObject> Also known as: to_dto

Constructs an ephemeral Castkit::DataObject class from the current contract.

This creates a new anonymous class each time unless memoized via #dataobject.

Examples:

dto_class = contract.to_dataobject

Returns:



48
49
50
51
52
53
54
# File 'lib/castkit/contract/data_object.rb', line 48

def to_dataobject
  Class.new(Castkit::DataObject).tap do |klass|
    attributes.each_value do |attr|
      klass.attribute(attr.field, attr.type, **attr.options)
    end
  end
end