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
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