class SmartCore::Initializer::Attribute::List

@api private @since 0.1.0

Attributes

attributes[R]

@return [Hash<String,SmartCore::Initializer::Attribute>]

@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/attribute/list.rb, line 13
def initialize
  @attributes = {}
  @lock = SmartCore::Engine::Lock.new
end

Public Instance Methods

<<(attribute)
Alias for: add
add(attribute) click to toggle source

@param attribute [SmartCore::Initializer::Attribute] @return [void]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute/list.rb, line 23
def add(attribute)
  thread_safe { attributes[attribute.name] = attribute }
end
Also aliased as: <<
concat(list) click to toggle source

@param list [SmartCore::Initializer::Attribute::List] @return [void]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute/list.rb, line 33
def concat(list)
  thread_safe do
    list.each { |attribute| add(attribute.dup) }
  end
end
count(&block) click to toggle source

@param block [Block] @return [Integer]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute/list.rb, line 72
def count(&block)
  thread_safe { attributes.values.count(&block) }
end
each(&block) click to toggle source

@param block [Block] @return [Enumerable]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute/list.rb, line 53
def each(&block)
  thread_safe do
    block_given? ? attributes.values.each(&block) : attributes.values.each
  end
end
include?(attribute) click to toggle source

@param attribute [SmartCore::Initializer::Attribute] @return [void]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute/list.rb, line 44
def include?(attribute)
  thread_safe { attributes.key?(attribute.name) }
end
size() click to toggle source

@return [Integer]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute/list.rb, line 63
def size
  thread_safe { attributes.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/attribute/list.rb, line 89
def thread_safe(&block)
  @lock.synchronize(&block)
end