class SmartCore::Initializer::AttributeSet
@api private @since 0.5.0
Attributes
attributes[R]
@return [Hash<Symbol, SmartCore::Initializer::Attribute>]
@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/attribute_set.rb, line 19 def initialize @attributes = {} @access_lock = Mutex.new end
Public Instance Methods
add_attribute(attribute)
click to toggle source
@param attribute [SmartCore::Initializer::Attribute] @return [void]
@api private @since 0.5.0
# File lib/smart_core/initializer/attribute_set.rb, line 29 def add_attribute(attribute) thread_safe { attributes[attribute.name] = attribute } end
Also aliased as: <<
concat(attribute_set)
click to toggle source
@param attribute_set [SmartCore::Initializer::AttributeSet] @return [void]
@api private @sinec 0.5.0
# File lib/smart_core/initializer/attribute_set.rb, line 39 def concat(attribute_set) thread_safe { attributes.merge!(attribute_set.dup.attributes) } end
conflicts_with?(attribute)
click to toggle source
@param attribute [SmartCore::Initializer::Attribute] @return [Boolean]
@api private @since 0.5.0
# File lib/smart_core/initializer/attribute_set.rb, line 48 def conflicts_with?(attribute) thread_safe { attributes.key?(attribute.name) } end
dup()
click to toggle source
@return [SmartCore::Initializer::AttributeSet]
@api private @since 0.5.0
# File lib/smart_core/initializer/attribute_set.rb, line 56 def dup thread_safe do self.class.new.tap do |duplicate| attributes.each_value do |attribute| duplicate.add_attribute(attribute.dup) end end end end
each(&block)
click to toggle source
@return [Enumerable]
@api private @since 0.5.0
# File lib/smart_core/initializer/attribute_set.rb, line 78 def each(&block) thread_safe { block_given? ? attributes.each_value(&block) : attributes.each_value } end
size()
click to toggle source
@return [Integer]
@api private @since 0.5.0
# File lib/smart_core/initializer/attribute_set.rb, line 70 def size thread_safe { attributes.size } 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/attribute_set.rb, line 89 def thread_safe(&block) @access_lock.synchronize(&block) end