summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-23 22:54:18 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-23 22:54:18 +0900
commite2bab8c71be55def3a9c9e7f3a234c43cd2bea2f (patch)
tree47e73c5bf0c30b5c53728d3ed0167a543f49908c /mrblib
parentb0f10b5c3db289275e127e3979f84fd567158b21 (diff)
parentd9068f0583b14e14b3d0b3a9ea6cc03657041012 (diff)
downloadmruby-e2bab8c71be55def3a9c9e7f3a234c43cd2bea2f.tar.gz
mruby-e2bab8c71be55def3a9c9e7f3a234c43cd2bea2f.zip
Merge pull request #1925 from ksss/hash-reject
Hash#{reject,reject!} support return Enumerator
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/hash.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/mrblib/hash.rb b/mrblib/hash.rb
index 491d2a0ee..3c08ccd9c 100644
--- a/mrblib/hash.rb
+++ b/mrblib/hash.rb
@@ -134,10 +134,12 @@ class Hash
# 1.8/1.9 Hash#reject! returns Hash; ISO says nothing.
def reject!(&b)
+ return to_enum :reject! unless block_given?
+
keys = []
self.each_key{|k|
v = self[k]
- if b.call(k, v)
+ if b.call([k, v])
keys.push(k)
end
}
@@ -150,10 +152,12 @@ class Hash
# 1.8/1.9 Hash#reject returns Hash; ISO says nothing.
def reject(&b)
+ return to_enum :reject unless block_given?
+
h = {}
self.each_key{|k|
v = self[k]
- unless b.call(k, v)
+ unless b.call([k, v])
h[k] = v
end
}