diff options
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 |
