summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-24 00:24:02 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-24 00:24:02 +0900
commit75eed54bbaa1ce0389f438490c723ff52ae9402b (patch)
tree31d9198255b809b4912ccf28cd02cab0c53820a0 /mrbgems/mruby-enum-ext
parentd05635e252342b09b8194b0af7fd297914122e4c (diff)
downloadmruby-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.rb20
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