diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-24 00:24:02 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-24 00:24:02 +0900 |
| commit | 75eed54bbaa1ce0389f438490c723ff52ae9402b (patch) | |
| tree | 31d9198255b809b4912ccf28cd02cab0c53820a0 /mrbgems/mruby-enum-ext | |
| parent | d05635e252342b09b8194b0af7fd297914122e4c (diff) | |
| download | mruby-75eed54bbaa1ce0389f438490c723ff52ae9402b.tar.gz mruby-75eed54bbaa1ce0389f438490c723ff52ae9402b.zip | |
move conditional out of loop
Diffstat (limited to 'mrbgems/mruby-enum-ext')
| -rw-r--r-- | mrbgems/mruby-enum-ext/mrblib/enum.rb | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb index 065607405..885ec26db 100644 --- a/mrbgems/mruby-enum-ext/mrblib/enum.rb +++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb @@ -430,10 +430,12 @@ module Enumerable # [nil, true].none? #=> false def none?(&block) - self.each do |*val| - if block + if block + self.each do |*val| return false if block.call(*val) - else + end + else + self.each do |*val| return false if val.__svalue end end @@ -459,14 +461,18 @@ module Enumerable def one?(&block) count = 0 - self.each do |*val| - if block + if block + self.each do |*val| count += 1 if block.call(*val) - else + return false if count > 1 + end + else + self.each do |*val| count += 1 if val.__svalue + return false if count > 1 end - return false if count > 1 end + count == 1 ? true : false end end |
