Method: Weak::Map#delete_if

Defined in:
lib/weak/map.rb

#delete_if {|key, value| ... } ⇒ Enumerator, self

Deletes every key-value pair from self for which the given block evaluates to a truthy value.

If no block is given, an Enumerator is returned instead.

Yields:

  • (key, value)

    calls the given block once for each key in the map

Yield Parameters:

  • key (Object)

    a key

  • value (Object)

    the corresponding value

Returns:

  • (Enumerator, self)

    self if a block was given or an Enumerator if no block was given.

See Also:



446
447
448
449
450
451
452
453
# File 'lib/weak/map.rb', line 446

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

  each do |key, value|
    delete(key) if yield(key, value)
  end
  self
end