summaryrefslogtreecommitdiff
path: root/app/models/wiki_page.rb
diff options
context:
space:
mode:
authorAlex Braha Stoll <alexbrahastoll@gmail.com>2016-12-17 16:38:55 -0200
committerAlex Braha Stoll <alexbrahastoll@gmail.com>2016-12-31 16:55:50 -0200
commitbebfba3e6de520f98d263ced2d2a17f6ddfc4a6f (patch)
tree7545772dfdc372abf36a5ebe40f387ccb7040f0c /app/models/wiki_page.rb
parent083442bc716d7e69cbb9e7852159b0f3ba9a4610 (diff)
downloadgitlab-ce-bebfba3e6de520f98d263ced2d2a17f6ddfc4a6f.tar.gz
Refactor WikiPage.group_by_directory
Diffstat (limited to 'app/models/wiki_page.rb')
-rw-r--r--app/models/wiki_page.rb15
1 files 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