module SmartCore::Initializer::Functionality

@api private @since 0.3.0

Constants

INITIAL_TYPE_SYSTEM

@return [NilClass]

@api private @since 0.3.0

Public Class Methods

includable_module(type_system: INITIAL_TYPE_SYSTEM) click to toggle source

@option type_system [String, Symbol, NilClass] @return [Module]

@api private @since 0.3.0

# File lib/smart_core/initializer/functionality.rb, line 18
def includable_module(type_system: INITIAL_TYPE_SYSTEM)
  Module.new.tap do |extension|
    extension.singleton_class.define_method(:included) do |base_klass|
      base_klass.include(::SmartCore::Initializer)
      base_klass.__initializer_settings__.type_system = type_system
    end
  end
end
seed_to(base_klass) click to toggle source

@param base_klass [Class] @return [void]

@api private @since 0.3.0

# File lib/smart_core/initializer/functionality.rb, line 32
def seed_to(base_klass)
  base_klass.extend(SmartCore::Initializer::DSL)
  base_klass.include(SmartCore::Initializer::InstanceAttributeAccessing)
end