Issue #8478 has been reported by phiggins (Pete Higgins).

----------------------------------------
Feature #8478: The hash returned by Enumerable#group_by should have an empty array for its default value
https://bugs.ruby-lang.org/issues/8478

Author: phiggins (Pete Higgins)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


Without this patch, nil checks might need to be done on the return value of Enumerable#group_by:

$ cat test_group_by.rb 
a = [1, 2, 3, "a", "b"]
g = a.group_by {|o| o.class }

puts "Fixnums: #{g[Fixnum].size}"
puts "Strings: #{g[String].size}"
puts "Arrays: #{g[Array].size}"

$ ruby test_group_by.rb 
Fixnums: 3
Strings: 2
test_group_by.rb:6:in `<main>': undefined method `size' for nil:NilClass (NoMethodError)

This patch adds a default value of an empty array to the hash returned by Enumerable#group_by, so the script above will work:

$ ./ruby -I.:lib test_group_by.rb 
Fixnums: 3
Strings: 2
Arrays: 0



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