diff options
author | Alex Braha Stoll <alexbrahastoll@gmail.com> | 2016-12-17 16:38:55 -0200 |
---|---|---|
committer | Alex Braha Stoll <alexbrahastoll@gmail.com> | 2016-12-31 16:55:50 -0200 |
commit | bebfba3e6de520f98d263ced2d2a17f6ddfc4a6f (patch) | |
tree | 7545772dfdc372abf36a5ebe40f387ccb7040f0c /app/models/wiki_page.rb | |
parent | 083442bc716d7e69cbb9e7852159b0f3ba9a4610 (diff) | |
download | gitlab-ce-bebfba3e6de520f98d263ced2d2a17f6ddfc4a6f.tar.gz |
Refactor WikiPage.group_by_directory
Diffstat (limited to 'app/models/wiki_page.rb')
-rw-r--r-- | app/models/wiki_page.rb | 15 |
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 |