Refactor WikiPage.group_by_directory

This commit is contained in:
Alex Braha Stoll 2016-12-17 16:38:55 -02:00
parent 083442bc71
commit bebfba3e6d
1 changed files with 6 additions and 9 deletions

View File

@ -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