Method: Weak::Set#delete_if

Defined in:
lib/weak/set.rb

#delete_if {|element| ... } ⇒ self, Enumerator

Deletes every element of the weak set for which the given block block evaluates to a truethy value, and returns self. Returns an Enumerator if no block is given.

Yields:

  • (element)

    calls the given block once with each element. If the block returns a truethy value, the element is deleted from the set

Yield Parameters:

  • element (Object)

    a live element of the set

Returns:

  • self or an Enumerator if no block was given

See Also:



442
443
444
445
446
447
448
449
# File 'lib/weak/set.rb', line 442

def delete_if(&block)
  return enum_for(__method__) { size } unless block_given?

  each do |obj|
    delete?(obj) if yield(obj)
  end
  self
end