From: "phiggins (Pete Higgins)" Date: 2013-06-03T04:37:48+09:00 Subject: [ruby-core:55260] [ruby-trunk - Feature #8478][Open] The hash returned by Enumerable#group_by should have an empty array for its default value 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 `
': 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/