Method: Hash#hash_select
- Defined in:
- lib/quality_extensions/hash/hash_select.rb
#hash_select(&block) ⇒ Object Also known as: hash_find_all, delete_unless
call-seq:
hash.hash_select {| key, value | block } -> hash
Hash#reject
returns a hash. One would intuitively expect Hash#select
to also return a hash. However, it doesn’t: instead, returns “a new array consisting of [key,value]
pairs for which the block returns true”.
Hash#hash_select
behaves how Hash#select
(arguably) should behave: Deletes every key-value pair from a copy of hash
except those for which block
evaluates to true
.
20 21 22 23 24 |
# File 'lib/quality_extensions/hash/hash_select.rb', line 20 def hash_select(&block) reject {|k, v| !yield k, v } end |