summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext
diff options
context:
space:
mode:
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