diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index a84f84c67cd3f338c6438eea94ae796d574d28ff..efb6ff9bf2b040f82903e8d80d67ab31bc8d156c 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -17,10 +17,10 @@ class WikiPage # pages - an array of WikiPage objects. # # 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) return {} if pages.blank? - pages = sort_by_directory(pages) + pages = pages.sort_by { |page| [page.directory, page.slug] } directories = {} pages.each do |page| @@ -206,26 +206,6 @@ class WikiPage 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 attributes[:slug] = @page.url_path attributes[:title] = @page.title