Actions
Feature #16833
openAdd Enumerable#empty?
Description
It was surprising to me that Enumerator, something mixed into Array, does not include #empty?
. I think it is reasonable to assume people may have to guard iterating and other logic based on the emptiness of an enumerator, such was my case.
# pretend there's convoluted enumerator logic to produce this structure
table_rows = [{ data: ['First', 'Second', 'Third'], config: {} }, { data: [4, 5, 6], config: { color: 'red' } }].to_enum
return if table_rows.empty?
table_header = table_rows.first[:data] # requires an empty guard
# ...
I propose that it simply behaves as #take(1).to_a.empty?
instead of aliasing to something like #none?
because of falsey elements or #size == 0
because of potential nil
returns:
[].to_enum.empty? # => true
[false].to_enum.empty? # => false
[nil].to_enum.empty? # => false
[0].to_enum.empty? # => false
[1, 2, 3].to_enum.empty? # => false
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0