From e9239050e06a5fa4e18388a44e7bf806b067b991 Mon Sep 17 00:00:00 2001 From: Jon Frisby Date: Sun, 29 Aug 2010 22:23:14 -0700 Subject: [PATCH] Properly handle pages that exist in sub-dirs in search results --- lib/gollum/page.rb | 10 +++++++++- lib/gollum/wiki.rb | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/gollum/page.rb b/lib/gollum/page.rb index d93620bc..16b9c258 100644 --- a/lib/gollum/page.rb +++ b/lib/gollum/page.rb @@ -35,6 +35,14 @@ module Gollum filename =~ /^_/ ? false : match end + # Reusable filter to turn a filename (without path) into a canonical name. + # Strips extension, converts spaces to dashes. + # + # Returns the filtered String. + def self.canonicalize_filename(filename) + filename.split('.')[0..-2].join('.').gsub('-', ' ') + end + # Public: Initialize a page. # # wiki - The Gollum::Wiki in question. @@ -57,7 +65,7 @@ module Gollum # # Returns the String name. def name - filename.split('.')[0..-2].join('.').gsub('-', ' ') + self.class.canonicalize_filename(filename) end # Public: If the first element of a formatted page is an

tag it can diff --git a/lib/gollum/wiki.rb b/lib/gollum/wiki.rb index 4154dab4..bc4fd73e 100644 --- a/lib/gollum/wiki.rb +++ b/lib/gollum/wiki.rb @@ -219,11 +219,11 @@ module Gollum search_output.split("\n").collect do |line| result = line.split(':') - file_name = result[1] + file_name = Gollum::Page.canonicalize_filename(::File.basename(result[1])) { :count => result[2].to_i, - :name => file_name.split('.').first + :name => file_name } end end