class SmartCore::Initializer::Extensions::List
@api private @since 0.1.0
Attributes
extensions[R]
@return [Array<SmartCore::Initializer::Extensions::Abstract>]
@api private @since 0.1.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/extensions/list.rb, line 13 def initialize @extensions = [] @lock = SmartCore::Engine::Lock.new end
Public Instance Methods
add(extension)
click to toggle source
@param extension [SmartCore::Initializer::Extensions::Abstract] @return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/extensions/list.rb, line 23 def add(extension) thread_safe { extensions << extension } end
Also aliased as: <<
concat(list)
click to toggle source
@param list [SmartCore::Initializer::Extensions::List] @return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/extensions/list.rb, line 33 def concat(list) thread_safe do list.each { |extension| add(extension.dup) } end end
each(&block)
click to toggle source
@param block [Block] @return [Enumerable]
@api private @since 0.1.0
# File lib/smart_core/initializer/extensions/list.rb, line 44 def each(&block) thread_safe do block_given? ? extensions.each(&block) : extensions.each end end
size()
click to toggle source
@return [Integer]
@api private @since 0.1.0
# File lib/smart_core/initializer/extensions/list.rb, line 54 def size thread_safe { extensions.size } end
Private Instance Methods
thread_safe(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/smart_core/initializer/extensions/list.rb, line 71 def thread_safe(&block) @lock.synchronize(&block) end