Method: Weak::Set#select!
- Defined in:
- lib/weak/set.rb
#select! {|element| ... } ⇒ Enumerator, ... Also known as: filter!
Deletes every element 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.
639 640 641 642 643 644 645 646 647 648 |
# File 'lib/weak/set.rb', line 639 def select!(&block) return enum_for(__method__) { size } unless block_given? deleted_anything = false each do |obj| deleted_anything = true if !yield(obj) && delete?(obj) end self if deleted_anything end |