diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-23 22:54:18 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-23 22:54:18 +0900 |
| commit | e2bab8c71be55def3a9c9e7f3a234c43cd2bea2f (patch) | |
| tree | 47e73c5bf0c30b5c53728d3ed0167a543f49908c /mrblib | |
| parent | b0f10b5c3db289275e127e3979f84fd567158b21 (diff) | |
| parent | d9068f0583b14e14b3d0b3a9ea6cc03657041012 (diff) | |
| download | mruby-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.rb | 8 |
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 } |
