Module: Treaty::Attribute::Option::RegistryInitializer

Defined in:
lib/treaty/attribute/option/registry_initializer.rb

Overview

Initializes and registers all built-in option processors with the Registry.

## Purpose

Centralized registration point for all option processors (validators, modifiers, and conditionals). Automatically registers all built-in options when loaded.

## Responsibilities

  1. **Validator Registration** - Registers all built-in validators

  2. **Modifier Registration** - Registers all built-in modifiers

  3. **Conditional Registration** - Registers all built-in conditionals

  4. Auto-Loading - Executes automatically when file is loaded

## Built-in Validators

  • ‘:required` → RequiredValidator - Validates required/optional attributes

  • ‘:type` → TypeValidator - Validates value types

  • ‘:inclusion` → InclusionValidator - Validates value is in allowed set

  • ‘:format` → FormatValidator - Validates string values match specific formats

## Built-in Modifiers

  • ‘:as` → AsModifier - Renames attributes

  • ‘:default` → DefaultModifier - Provides default values

  • ‘:transform` → TransformModifier - Transforms values using custom lambdas

  • ‘:cast` → CastModifier - Converts values between types automatically

## Built-in Conditionals

  • ‘:if` → IfConditional - Conditionally includes attributes based on runtime data

  • ‘:unless` → UnlessConditional - Conditionally excludes attributes based on runtime data

## Auto-Registration

This file calls ‘register_all!` when loaded, ensuring all processors are available immediately.

## Adding New Options

To add a new option processor:

  1. Create the processor class (inherit from Option::Base)

  2. Add registration call here:

“‘ruby def register_validators!

Registry.register(:required, Validators::RequiredValidator, category: :validator)
Registry.register(:my_option, Validators::MyValidator, category: :validator)

end “‘

## Architecture

Works with:

  • Registry - Stores processor registrations

  • Option::Base - Base class for all processors

  • OptionOrchestrator - Uses registered processors

Class Method Summary collapse

Class Method Details

.register_all!void

This method returns an undefined value.

Registers all built-in option processors Called automatically when this file is loaded



69
70
71
72
73
# File 'lib/treaty/attribute/option/registry_initializer.rb', line 69

def register_all!
  register_validators!
  register_modifiers!
  register_conditionals!
end