module SmartCore::Container::Mixin

@api public @since 0.1.0

Public Class Methods

included(base_klass) click to toggle source

@param base_klass [Class] @return [void]

@api private @since 0.1.0

# File lib/smart_core/container/mixin.rb, line 12
def included(base_klass)
  # rubocop:disable Layout/LineLength
  base_klass.instance_variable_set(:@__smart_core_container_access_lock__, SmartCore::Container::ArbitraryLock.new)
  base_klass.instance_variable_set(:@__smart_core_container_klass__, Class.new(SmartCore::Container))
  base_klass.instance_variable_set(:@__smart_core_container__, nil)
  # rubocop:enable Layout/LineLength

  base_klass.extend(ClassMethods)
  base_klass.include(InstanceMethods)
  base_klass.singleton_class.prepend(ClassInheritance)
end