From 5ffd98ad31b3e9a4bed17f57b84d2ff255780dc3 Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Sun, 14 Oct 2012 15:15:55 -0600 Subject: [PATCH] Fix #491 --- lib/gollum/frontend/app.rb | 9 ++++++--- test/test_app.rb | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb index 31a22360..1815649a 100644 --- a/lib/gollum/frontend/app.rb +++ b/lib/gollum/frontend/app.rb @@ -86,7 +86,7 @@ module Precious end get '/' do - redirect File.join(settings.wiki_options[:base_path].to_s, 'Home') + redirect File.join(settings.wiki_options[:page_file_dir].to_s,settings.wiki_options[:base_path].to_s, 'Home') end # path is set to name if path is nil. @@ -190,13 +190,16 @@ module Precious path = '' if path.nil? format = params[:format].intern + page_dir = settings.wiki_options[:page_file_dir].to_s + page_dir = File.join(page_dir, path.sub(page_dir, '')) + # write_page is not directory aware so use wiki_options to emulate dir support. - wiki_options = settings.wiki_options.merge({ :page_file_dir => path }) + wiki_options = settings.wiki_options.merge({ :page_file_dir => page_dir }) wiki = Gollum::Wiki.new(settings.gollum_path, wiki_options) begin wiki.write_page(name, format, params[:content], commit_message) - redirect to("/#{clean_url(CGI.escape(::File.join(path,name)))}") + redirect to("/#{clean_url(CGI.escape(::File.join(page_dir,name)))}") rescue Gollum::DuplicatePageError => e @message = "Duplicate page: #{e.message}" mustache :error diff --git a/test/test_app.rb b/test/test_app.rb index 5da184dc..bf1fdb58 100644 --- a/test/test_app.rb +++ b/test/test_app.rb @@ -184,7 +184,7 @@ context "Frontend" do name = "A" post "/create", :content => 'abc', :page => name, :format => 'markdown', :message => 'def' - follow_redirect! + assert last_response.ok? @wiki.clear_cache