Remove WikiPage.sort_by_directory

This commit is contained in:
Alex Braha Stoll 2016-12-25 22:50:36 -02:00
parent 645aaf6e3d
commit 77fe503a1f
1 changed files with 2 additions and 22 deletions

View File

@ -17,10 +17,10 @@ class WikiPage
# pages - an array of WikiPage objects. # pages - an array of WikiPage objects.
# #
# Returns a hash whose keys are directories and whose values are WikiPage # Returns a hash whose keys are directories and whose values are WikiPage
# arrays. See WikiPage.sort_by_directory for more info about the ordering. # arrays.
def self.group_by_directory(pages) def self.group_by_directory(pages)
return {} if pages.blank? return {} if pages.blank?
pages = sort_by_directory(pages) pages = pages.sort_by { |page| [page.directory, page.slug] }
directories = {} directories = {}
pages.each do |page| pages.each do |page|
@ -206,26 +206,6 @@ class WikiPage
private private
# Sorts an array of pages by directory and file alphabetical order.
# Pages at the root directory will come first. The next pages will be
# sorted by their directories. Within directories, pages are sorted by
# filename alphabetical order. Pages are sorted in such a fashion that
# nested directories will always follow their parents (e.g. pages in
# dir_1/nested_dir_1 will follow pages inside dir_1).
#
# pages - an array of WikiPage objects.
#
# Returns a sorted array of WikiPage objects.
def self.sort_by_directory(pages)
pages.sort do |page, next_page|
if page.directory == next_page.directory
page.slug <=> next_page.slug
else
page.directory <=> next_page.directory
end
end
end
def set_attributes def set_attributes
attributes[:slug] = @page.url_path attributes[:slug] = @page.url_path
attributes[:title] = @page.title attributes[:title] = @page.title