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

<<(extension)
Alias for: add
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