summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext/mrblib/enum.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-23 16:35:55 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-23 16:35:55 +0900
commit85d20127a1ae732b7d6eed042766f3c9ed0e9cb7 (patch)
tree1f9d5f4b15bee1426f031950133fe94a5cad0395 /mrbgems/mruby-enum-ext/mrblib/enum.rb
parentff6666632f96fe837cc36b13afac8f2ab147d9d7 (diff)
parentd8d47b80c313825b727aac9a8e05c5493ba02315 (diff)
downloadmruby-85d20127a1ae732b7d6eed042766f3c9ed0e9cb7.tar.gz
mruby-85d20127a1ae732b7d6eed042766f3c9ed0e9cb7.zip
Merge pull request #1922 from suzukaze/add-enum.none
Add Enumerable.none?
Diffstat (limited to 'mrbgems/mruby-enum-ext/mrblib/enum.rb')
-rw-r--r--mrbgems/mruby-enum-ext/mrblib/enum.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb
index 8a2cdd5f1..a228abb0b 100644
--- a/mrbgems/mruby-enum-ext/mrblib/enum.rb
+++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb
@@ -413,4 +413,30 @@ module Enumerable
end
[min, max]
end
+
+ ##
+ # call-seq:
+ # enum.none? [{ |obj| block }] -> true or false
+ #
+ # Passes each element of the collection to the given block. The method
+ # returns <code>true</code> if the block never returns <code>true</code>
+ # for all elements. If the block is not given, <code>none?</code> will return
+ # <code>true</code> only if none of the collection members is true.
+ #
+ # %w(ant bear cat).none? { |word| word.length == 5 } #=> true
+ # %w(ant bear cat).none? { |word| word.length >= 4 } #=> false
+ # [].none? #=> true
+ # [nil, false].none? #=> true
+ # [nil, true].none? #=> false
+
+ def none?(&block)
+ self.each do |*val|
+ if block
+ return false if block.call(*val)
+ else
+ return false if val.__svalue
+ end
+ end
+ true
+ end
end