Module: SmartCore::Initializer::Functionality Private

Defined in:
lib/smart_core/initializer/functionality.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Since:

  • 0.3.0

Class Method Summary collapse

Class Method Details

.includable_module(type_system:, strict_options:, auto_cast:) ⇒ Module

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • type_system (Hash)

    a customizable set of options

  • strict_option (Hash)

    a customizable set of options

  • auto_cast (Hash)

    a customizable set of options

Options Hash (type_system:):

  • (String, Symbol)

Options Hash (auto_cast:):

  • (Boolean)

Returns:

  • (Module)

Since:

  • 0.3.0

Version:

  • 0.8.0



15
16
17
18
19
20
21
22
23
24
# File 'lib/smart_core/initializer/functionality.rb', line 15

def includable_module(type_system:, strict_options:, auto_cast:)
  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
      base_klass.__initializer_settings__.strict_options = strict_options
      base_klass.__initializer_settings__.auto_cast = auto_cast
    end
  end
end

.seed_to(base_klass) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Parameters:

  • base_klass (Class)

Since:

  • 0.3.0



31
32
33
34
# File 'lib/smart_core/initializer/functionality.rb', line 31

def seed_to(base_klass)
  base_klass.extend(SmartCore::Initializer::DSL)
  base_klass.include(SmartCore::Initializer::InstanceAttributeAccessing)
end