From 7542ab51b7b1542a09b1e00c1459fa2a2eab6d6d Mon Sep 17 00:00:00 2001 From: Tim Wisniewski Date: Sat, 20 Feb 2016 20:30:38 -0500 Subject: [PATCH 1/2] Add size property to group_by result --- lib/jekyll/filters.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 986bfdee..4128b305 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -205,7 +205,7 @@ module Jekyll input.group_by do |item| item_property(item, property).to_s end.inject([]) do |memo, i| - memo << { "name" => i.first, "items" => i.last } + memo << { "name" => i.first, "items" => i.last, "size" => i.last.size } end else input From 3fbca47b1a1746bb671d6b5fe1b67941c4481b87 Mon Sep 17 00:00:00 2001 From: timwis Date: Thu, 25 Feb 2016 10:41:23 -0500 Subject: [PATCH 2/2] add test for group_by size property --- test/test_filters.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/test_filters.rb b/test/test_filters.rb index e9035b96..10812f5e 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -289,6 +289,14 @@ class TestFilters < JekyllUnitTest end end end + + should "include the size of each grouping" do + @filter.site.process + grouping = @filter.group_by(@filter.site.pages, "layout") + grouping.each do |g| + assert_equal g["items"].size, g["size"], "The size property for '#{g["name"]}' doesn't match the size of the Array." + end + end end context "where filter" do