File tree Expand file tree Collapse file tree 2 files changed +3
-16
lines changed
lib/active_support/core_ext Expand file tree Collapse file tree 2 files changed +3
-16
lines changed Original file line number Diff line number Diff line change @@ -15,23 +15,10 @@ module Enumerable
15
15
# "2006-02-24 -> Transcript, Transcript"
16
16
# "2006-02-23 -> Transcript"
17
17
def group_by
18
- groups = [ ]
19
-
20
- inject ( { } ) do |grouped , element |
21
- index = yield ( element )
22
-
23
- if group = grouped [ index ]
24
- group << element
25
- else
26
- group = [ element ]
27
- groups << [ index , group ]
28
- grouped [ index ] = group
29
- end
30
-
18
+ inject ActiveSupport ::OrderedHash . new do |grouped , element |
19
+ ( grouped [ yield ( element ) ] ||= [ ] ) << element
31
20
grouped
32
21
end
33
-
34
- groups
35
22
end if RUBY_VERSION < '1.9'
36
23
37
24
# Calculates a sum from the elements. Examples:
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ def test_group_by
21
21
assert group . all? { |person | person . name == name }
22
22
end
23
23
24
- assert_equal objects . uniq . map ( &:name ) , grouped . map { | name , group | name }
24
+ assert_equal objects . uniq . map ( &:name ) , grouped . keys
25
25
end
26
26
27
27
def test_sums
You can’t perform that action at this time.
0 commit comments