Module: Castkit::DSL::Attribute

Included in:
Attribute
Defined in:
lib/castkit/dsl/attribute.rb,
lib/castkit/dsl/attribute/access.rb,
lib/castkit/dsl/attribute/options.rb,
lib/castkit/dsl/attribute/validation.rb,
lib/castkit/dsl/attribute/error_handling.rb

Overview

Note:

This module is not intended to be mixed into Attributes::Definition.

Provides a unified entry point for attribute-level DSL extensions.

This module bundles together the core DSL modules for configuring attributes. It is included internally by systems that support Castkit-style attribute declarations, such as Castkit::DataObject and Contract::Base.

When included, it mixes in:

  • Options – option-setting methods (e.g., ‘required`, `default`, etc.)

  • Access – access control methods (e.g., ‘readonly`, `access`)

  • Validation – validation helpers (e.g., ‘format`, `validator`)

Examples:

Extending a custom DSL that uses Castkit-style attributes

class MyCustomSchema
  include Castkit::DSL::Attribute

  def self.required(value)
    # interpret DSL options
  end
end

class MyString < MyCustomSchema
  type :string
  required true
  access [:read]
end

Defined Under Namespace

Modules: Access, ErrorHandling, Options, Validation

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object

Hook called when this module is included.

Parameters:

  • base (Class, Module)

    the including class or module



40
41
42
43
44
# File 'lib/castkit/dsl/attribute.rb', line 40

def self.included(base)
  base.include(Castkit::DSL::Attribute::Options)
  base.include(Castkit::DSL::Attribute::Access)
  base.include(Castkit::DSL::Attribute::Validation)
end