From a5d460636daedaeeb2d6d4c087b358dd5e383029 Mon Sep 17 00:00:00 2001 From: Tom Preston-Werner Date: Thu, 22 Jul 2010 16:06:33 -0700 Subject: [PATCH] Make Wiki#page case insensitive. --- lib/gollum/frontend/app.rb | 2 +- lib/gollum/markup.rb | 10 ++++++++-- lib/gollum/page.rb | 2 +- test/test_page.rb | 4 ++++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb index 267580a8..ad903bfd 100644 --- a/lib/gollum/frontend/app.rb +++ b/lib/gollum/frontend/app.rb @@ -62,7 +62,7 @@ module Precious end post '/create/:name' do - name = params[:name] + name = params[:page] wiki = Gollum::Wiki.new($path) format = params[:format].intern diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb index cd15e17e..5deb059b 100644 --- a/lib/gollum/markup.rb +++ b/lib/gollum/markup.rb @@ -212,8 +212,14 @@ module Gollum if name =~ %r{^https?://} && parts[1].nil? %{#{name}} else - link = ::File.join(@wiki.base_path, cname) - presence = @wiki.page(cname) ? "present" : "absent" + if page = @wiki.page(cname) + pname = page.name.split('.')[0..-2].join('.') + link = ::File.join(@wiki.base_path, Page.cname(pname)) + presence = "present" + else + link = ::File.join(@wiki.base_path, cname) + presence = "absent" + end %{#{name}} end end diff --git a/lib/gollum/page.rb b/lib/gollum/page.rb index ed7f0462..0138902c 100644 --- a/lib/gollum/page.rb +++ b/lib/gollum/page.rb @@ -271,7 +271,7 @@ module Gollum # Returns a Boolean. def page_match(name, filename) if match = self.class.valid_filename?(filename) - Page.cname(name) == Page.cname(match) + Page.cname(name).downcase == Page.cname(match).downcase else false end diff --git a/test/test_page.rb b/test/test_page.rb index 6ceec2b3..d4fc207d 100644 --- a/test/test_page.rb +++ b/test/test_page.rb @@ -21,6 +21,10 @@ context "Page" do assert_equal @wiki.repo.commits.first.id, page.version.id end + test "get existing page case insensitive" do + assert_equal @wiki.page('Bilbo Baggins').path, @wiki.page('bilbo baggins').path + end + test "get nested page" do page = @wiki.page('Eye Of Sauron') assert_equal 'Mordor/Eye-Of-Sauron.md', page.path