Bug #3192 ยป set_keep_if.patch
| NEWS | ||
|---|---|---|
|
* Readline.completion_proc= accepts nil.
|
||
|
nil means to use default completion proc.
|
||
|
* set
|
||
|
* new methods:
|
||
|
* Set#keep_if
|
||
|
* Set#select!
|
||
|
* time
|
||
|
* incompatible changes:
|
||
|
* Time.parse raises ArgumentError when no date information.
|
||
| lib/set.rb | ||
|---|---|---|
|
self
|
||
|
end
|
||
|
# Deletes every element of the set for which block evaluates to
|
||
|
# false, and returns self.
|
||
|
def keep_if
|
||
|
block_given? or return enum_for(__method__)
|
||
|
to_a.each { |o| @hash.delete(o) unless yield(o) }
|
||
|
self
|
||
|
end
|
||
|
# Replaces the elements with ones returned by collect().
|
||
|
def collect!
|
||
|
block_given? or return enum_for(__method__)
|
||
| ... | ... | |
|
size == n ? nil : self
|
||
|
end
|
||
|
# Equivalent to Set#keep_if, but returns nil if no changes were
|
||
|
# made.
|
||
|
def select!
|
||
|
block_given? or return enum_for(__method__)
|
||
|
n = size
|
||
|
keep_if { |o| yield(o) }
|
||
|
size == n ? nil : self
|
||
|
end
|
||
|
# Merges the elements of the given enumerable object to the set and
|
||
|
# returns self.
|
||
|
def merge(enum)
|
||