Issue #12059 has been updated by Yusuke Endoh.


I'm neutral for the proposal itself.  If it is accepted, I think "singleton?" is the best name.

> In mathematics, a singleton ... is a set with exactly one element.
>
> https://en.wikipedia.org/wiki/Singleton_(mathematics)

-- 
Yusuke Endoh <mame / ruby-lang.org>

----------------------------------------
Feature #12059: `Array#single?`, `Hash#single?`
https://bugs.ruby-lang.org/issues/12059#change-56936

* Author: Tsuyoshi Sawada
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
There are some use cases when one wants to check if an array or a hash has exactly one element. I propose `Array#single?` and `Hash#single?` that checks for such cases and returns either `true` or `false`. This is an analogy from the `empty?` method on the respective class.

* When creating an inflectional form out of an array:

~~~ruby
a = ["object1", "object2"]
"There #{a.single ? "is" : "are"} #{a.length} #{a.single? ? "object" : "objects"}."
# => "There are 2 objects."
~~~

* When checking if all elements of the array are the same:

~~~ruby
[1, 2, 2, 1].uniq.single? # => false
[1, 1, 1, 1].uniq.single? # => true
~~~




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>