From 75eed54bbaa1ce0389f438490c723ff52ae9402b Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 24 Mar 2014 00:24:02 +0900 Subject: move conditional out of loop --- mrbgems/mruby-enum-ext/mrblib/enum.rb | 20 +++++++++++++------- 1 file 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 -- cgit v1.2.3