Method: Enumerable#one?
- Defined in:
- enum.c
#one? {|obj| ... } ⇒ Boolean
Passes each element of the collection to the given block. The method returns true if the block returns true exactly once. If the block is not given, one? will return true only if exactly one of the collection members is true.
%w{ant bear cat}.one? { |word| word.length == 4 } #=> true
%w{ant bear cat}.one? { |word| word.length > 4 } #=> false
%w{ant bear cat}.one? { |word| word.length < 4 } #=> false
[ nil, true, 99 ].one? #=> false
[ nil, true, false ].one? #=> true
1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 |
# File 'enum.c', line 1126 static VALUE enum_one(VALUE obj) { NODE *memo = NEW_MEMO(Qundef, 0, 0); VALUE result; rb_block_call(obj, id_each, 0, 0, ENUMFUNC(one), (VALUE)memo); result = memo->u1.value; if (result == Qundef) return Qfalse; return result; } |