Method: Weak::Map#select!
- Defined in:
- lib/weak/map.rb
#select! {|key, value| ... } ⇒ Enumerator, ... Also known as: filter!
Deletes every key-value pair from self for which the given block
evaluates to a falsey value.
Equivalent to #keep_if, but returns nil if no changes were made.
If no block is given, an Enumerator is returned instead.
656 657 658 659 660 661 662 663 664 665 666 667 668 |
# File 'lib/weak/map.rb', line 656 def select!(&block) return enum_for(__method__) { size } unless block_given? deleted_anything = false each do |key, value| next if yield(key, value) delete(key) deleted_anything = true end self if deleted_anything end |