From 1f709c1ef0d304f200c836c4b0a95c2516e6b7fa Mon Sep 17 00:00:00 2001 From: Jun Hiroe Date: Sun, 23 Mar 2014 12:58:12 +0900 Subject: Add Enumerable#none? --- mrbgems/mruby-enum-ext/mrblib/enum.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'mrbgems/mruby-enum-ext/mrblib') diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb index 8a2cdd5f1..8b62cf057 100644 --- a/mrbgems/mruby-enum-ext/mrblib/enum.rb +++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb @@ -413,4 +413,27 @@ 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 true if the block never returns true + # for all elements. If the block is not given, none? will return + # true 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| + val = block.call(val) if block + return false if val + end + true + end end -- cgit v1.2.3