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

Defined in:
lib/treaty/entity/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 (sorted by position)

  • :type → TypeValidator (position: 100) - Validates value types
  • :required → RequiredValidator (position: 200) - Validates required/optional attributes
  • :inclusion → InclusionValidator (position: 300) - Validates value is in allowed set
  • :format → FormatValidator (position: 400) - Validates string values match specific formats

Built-in Modifiers (sorted by position)

  • :transform → TransformModifier (position: 500) - Transforms values using custom lambdas
  • :cast → CastModifier (position: 600) - Converts values between types automatically
  • :computed → ComputedModifier (position: 700) - Computes values from all raw data
  • :default → DefaultModifier (position: 800) - Provides default values
  • :as → AsModifier (position: 900) - Renames attributes

Built-in Conditionals (no position - handled separately)

  • :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:
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



71
72
73
74
75
# File 'lib/treaty/entity/attribute/option/registry_initializer.rb', line 71

def register_all!
  register_validators!
  register_modifiers!
  register_conditionals!
end