Issue #12059 has been updated by Prem Sichanugrist.


I feel like the usage of this method wouldn't be generic enough, and could be accomplished easily by `.size.one?`

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

* 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>