class SmartCore::Validator::AttributeSet
@api private @since 0.1.0
Attributes
attributes[R]
@return [Hash<Symbol,SmartCore::Validator::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/validator/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::Validator::Attribute] @return [void]
@api private @since 0.1.0
# File lib/smart_core/validator/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::Validator::AttributeSet] @return [void]
@api private @sinec 0.1.0
# File lib/smart_core/validator/attribute_set.rb, line 39 def concat(attribute_set) thread_safe { attributes.merge!(attribute_set.dup.attributes) } end
dup()
click to toggle source
@return [SmartCore::Validator::AttributeSet]
@api private @since 0.1.0
# File lib/smart_core/validator/attribute_set.rb, line 47 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.1.0
# File lib/smart_core/validator/attribute_set.rb, line 61 def each(&block) thread_safe { block_given? ? attributes.each_value(&block) : attributes.each_value } end
Private Instance Methods
thread_safe(&block)
click to toggle source
@param block [Proc] @return [Any]
@api private @since 0.1.0
# File lib/smart_core/validator/attribute_set.rb, line 72 def thread_safe(&block) @access_lock.synchronize(&block) end