class SmartCore::Initializer::ExtensionSet
@api private @since 0.5.0
Attributes
extensions[R]
@return [Array<SmartCore::Initializer::InitializationExtension>]
@api private @since 0.5.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_set.rb, line 19 def initialize @extensions = [] @access_lock = Mutex.new end
Public Instance Methods
add_extension(extension)
click to toggle source
@param extension [SmartCore::Initializer::InitializationExtension] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_set.rb, line 29 def add_extension(extension) thread_safe { extensions << extension } end
Also aliased as: <<
concat(extension_set)
click to toggle source
@param extension_set [SmartCore::Initializer::ExtensionSet] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_set.rb, line 61 def concat(extension_set) thread_safe { extensions.concat(extension_set.dup.extensions) } end
dup()
click to toggle source
@return [SmartCore::Initializer::ExtensionSet]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_set.rb, line 38 def dup thread_safe do self.class.new.tap do |duplicate| extensions.each do |extension| duplicate.add_extension(extension.dup) end end end end
each(&block)
click to toggle source
@return [Enumerable]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_set.rb, line 52 def each(&block) thread_safe { block_given? ? extensions.each(&block) : extensions.each } end
Private Instance Methods
thread_safe(&block)
click to toggle source
@param block [Proc] @return [Any]
@api private @since 0.5.0
# File lib/smart_core/initializer/extension_set.rb, line 72 def thread_safe(&block) @access_lock.synchronize(&block) end