From cee0f8b6522a3cb34755fa06f6d1de95f5c3409c Mon Sep 17 00:00:00 2001 From: Dawa Ometto Date: Wed, 5 Nov 2014 02:30:07 +0100 Subject: [PATCH] Change pages display to handle non-wiki file types with --show_all enabled --- lib/gollum/views/pages.rb | 6 +++++- test/test_pages_view.rb | 24 ++++++++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/gollum/views/pages.rb b/lib/gollum/views/pages.rb index d2a85f5e..0a8d77d4 100644 --- a/lib/gollum/views/pages.rb +++ b/lib/gollum/views/pages.rb @@ -47,7 +47,11 @@ module Precious folder_link end elsif page_path != ".gitkeep" - %{
  • #{page.name}
  • } + if defined? page.format + %{
  • #{page.name}
  • } + else + %{
  • #{page.name}
  • } + end end }.compact.join("\n") else diff --git a/test/test_pages_view.rb b/test/test_pages_view.rb index 85a0bbde..868ccacd 100644 --- a/test/test_pages_view.rb +++ b/test/test_pages_view.rb @@ -2,14 +2,26 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) require File.expand_path '../../lib/gollum/views/pages', __FILE__ -FakeResult = Struct.new(:path) do +FakePageResult = Struct.new(:path) do def name File.basename(path, File.extname(path)).gsub("-", " ") end - def escaped_url_path CGI.escape(path).gsub(/\..+$/, "").gsub("%2F", "/") end + def format + true + end +end + +FakeFileResult = Struct.new(:path) do + def name + File.basename(path).gsub("-", " ") + end + def escaped_url_path + result = path.sub(/\/[^\/]+$/, '/') + CGI.escape(result).gsub("%2F", "/") + end end context "Precious::Views::Pages" do @@ -30,17 +42,17 @@ context "Precious::Views::Pages" do test "files_folders" do @page.instance_variable_set("@path", "Mordor") @page.instance_variable_set("@base_url", "") - results = [FakeResult.new("Mordor/Eye-Of-Sauron.md"), FakeResult.new("Mordor/Orc/Saruman.md"), FakeResult.new("Mordor/.gitkeep")] + results = [FakePageResult.new("Mordor/Eye-Of-Sauron.md"), FakeFileResult.new("Mordor/Aragorn.pdf"), FakePageResult.new("Mordor/Orc/Saruman.md"), FakeFileResult.new("Mordor/.gitkeep")] @page.instance_variable_set("@results", results) - assert_equal %{
  • Eye Of Sauron
  • \n
  • Orc
  • }, @page.files_folders + assert_equal %{
  • Eye Of Sauron
  • \n
  • Aragorn.pdf
  • \n
  • Orc
  • }, @page.files_folders end test "base url" do # based on test "files_folders" @page.instance_variable_set("@path", "Mordor") @page.instance_variable_set("@base_url", "/wiki") - results = [FakeResult.new("Mordor/Eye-Of-Sauron.md"), FakeResult.new("Mordor/Orc/Saruman.md"), FakeResult.new("Mordor/.gitkeep")] + results = [FakePageResult.new("Mordor/Eye-Of-Sauron.md"), FakeFileResult.new("Mordor/Aragorn.pdf"), FakePageResult.new("Mordor/Orc/Saruman.md"), FakePageResult.new("Mordor/.gitkeep")] @page.instance_variable_set("@results", results) - assert_equal %{
  • Eye Of Sauron
  • \n
  • Orc
  • }, @page.files_folders + assert_equal %{
  • Eye Of Sauron
  • \n
  • Aragorn.pdf
  • \n
  • Orc
  • }, @page.files_folders end end