module SmartCore::ValueObject::Interface::Constructor

@api private @since 0.1.0

Public Class Methods

included(base_klass) click to toggle source

@param base_klass [Class<SmartCore::ValueObject>] @return [void]

@api private @since 0.1.0

# File lib/smart_core/value_object/interface/constructor.rb, line 12
def included(base_klass)
  base_klass.include(::SmartCore::Initializer)
  base_klass.singleton_class.class_eval do
    alias_method :attribute, :param
    alias_method :property, :option
    alias_method :attributes, :params
    alias_method :properties, :options
  end
  base_klass.include(AttributeAccess)
  base_klass.extend_initialization_flow(&ImmutabilityControl)
end