class SmartCore::Initializer::ExtensionDefiner
@api private @since 0.5.0
Attributes
processed_klass[R]
@return [Class]
@api private @since 0.5.0
Public Class Methods
new(processed_klass)
click to toggle source
@param processed_klass
[Class] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_definer.rb, line 11 def initialize(processed_klass) @processed_klass = processed_klass @definition_lock = Mutex.new end
Public Instance Methods
append_extension(raw_extension)
click to toggle source
@param raw_extension [Proc] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_definer.rb, line 21 def append_extension(raw_extension) thread_safe do extension = build_extension(raw_extension) extend_initialization_flow(extension) end end
Private Instance Methods
build_extension(raw_extension)
click to toggle source
@param raw_extension [Proc] @return [SmartCore::Initializar::Extension]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_definer.rb, line 41 def build_extension(raw_extension) SmartCore::Initializer::Extension.new(raw_extension) end
extend_initialization_flow(extension)
click to toggle source
@param extension [SmartCore::Initializer::Extension] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_definer.rb, line 50 def extend_initialization_flow(extension) processed_klass.__initialization_extensions__ << extension end
thread_safe(&block)
click to toggle source
@param block [Proc] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_definer.rb, line 59 def thread_safe(&block) @definition_lock.synchronize(&block) end