From bebfba3e6de520f98d263ced2d2a17f6ddfc4a6f Mon Sep 17 00:00:00 2001
From: Alex Braha Stoll <alexbrahastoll@gmail.com>
Date: Sat, 17 Dec 2016 16:38:55 -0200
Subject: [PATCH] Refactor WikiPage.group_by_directory

---
 app/models/wiki_page.rb | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb
index 30db2b13dc0..425384d3df4 100644
--- a/app/models/wiki_page.rb
+++ b/app/models/wiki_page.rb
@@ -13,17 +13,14 @@ class WikiPage
   end
 
   def self.group_by_directory(pages)
-    directories = {}
+    return {} if pages.blank?
+    directories = { '/' => [] }
 
     pages.each do |page|
-      if page.slug.include?('/')
-        # Directory hierarchy is given by matching from the beginning up to
-        # the last forward slash.
-        directory = page.slug.match(/\A(.+)\//)[1]
-        directories[directory] = add_to_directory(directories[directory], page)
-      else
-        directories['root'] = add_to_directory(directories['root'], page)
-      end
+      directory = page.wiki.page_title_and_dir(page.slug).last
+      directory = '/' if directory.blank?
+      directories[directory] ||= []
+      directories[directory] << page
     end
 
     directories
-- 
GitLab