class Qonfig::Validation::Collections::InstanceCollection

@api private @since 0.20.0

Attributes

validators[R]

@return [Array<Qonfig::Validation::Validators::Base>]

@api private @since 0.20.0

Public Class Methods

new() click to toggle source

@return [void]

@api private @since 0.20.0

# File lib/qonfig/validation/collections/instance_collection.rb, line 20
def initialize
  @validators = []
  @access_lock = Mutex.new
end

Public Instance Methods

<<(validator)
Alias for: add_validator
add_validator(validator) click to toggle source

@param validator [Qonfig::Validation::Validators::Base] @return [void]

@api private @since 0.20.0

# File lib/qonfig/validation/collections/instance_collection.rb, line 30
def add_validator(validator)
  thread_safe { validators << validator }
end
Also aliased as: <<
concat(collection) click to toggle source

@param collection [Qonfig::Validation::Collections::InstanceCollection] @return [void]

@api private @since 0.20.0

# File lib/qonfig/validation/collections/instance_collection.rb, line 49
def concat(collection)
  thread_safe { validators.concat(collection.validators) }
end
dup() click to toggle source

@return [Qonfig::Validation::Collections::InstanceCollection]

@api private @since 0.20.0

# File lib/qonfig/validation/collections/instance_collection.rb, line 57
def dup
  thread_safe do
    Qonfig::Validation::Collections::InstanceCollection.new.tap do |duplicate|
      duplicate.concat(self)
    end
  end
end
each(&block) click to toggle source

@param block [Proc] @return [Enumerable]

@api private @since 0.20.0

# File lib/qonfig/validation/collections/instance_collection.rb, line 40
def each(&block)
  thread_safe { block_given? ? validators.each(&block) : validators.each }
end

Private Instance Methods

thread_safe(&block) click to toggle source

@param block [Proc] @return [Any]

@api private @since 0.13.0

# File lib/qonfig/validation/collections/instance_collection.rb, line 72
def thread_safe(&block)
  @access_lock.synchronize(&block)
end