Project

General

Profile

Feature #12059

`Array#single?`, `Hash#single?`

Added by sawa (Tsuyoshi Sawada) over 4 years ago. Updated over 4 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:73748]

Description

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:
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:
[1, 2, 2, 1].uniq.single? # => false
[1, 1, 1, 1].uniq.single? # => true

Also available in: Atom PDF