summaryrefslogtreecommitdiffhomepage
path: root/mrblib/hash.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib/hash.rb')
-rw-r--r--mrblib/hash.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/mrblib/hash.rb b/mrblib/hash.rb
index cd6ba8935..491d2a0ee 100644
--- a/mrblib/hash.rb
+++ b/mrblib/hash.rb
@@ -162,10 +162,12 @@ class Hash
# 1.9 Hash#select! returns Hash; ISO says nothing.
def select!(&b)
+ return to_enum :select! unless block_given?
+
keys = []
self.each_key{|k|
v = self[k]
- unless b.call(k, v)
+ unless b.call([k, v])
keys.push(k)
end
}
@@ -178,10 +180,12 @@ class Hash
# 1.9 Hash#select returns Hash; ISO says nothing.
def select(&b)
+ return to_enum :select unless block_given?
+
h = {}
self.each_key{|k|
v = self[k]
- if b.call(k, v)
+ if b.call([k, v])
h[k] = v
end
}