Change pages display to handle non-wiki file types with --show_all enabled
This commit is contained in:
@@ -47,7 +47,11 @@ module Precious
|
||||
folder_link
|
||||
end
|
||||
elsif page_path != ".gitkeep"
|
||||
%{<li><a href="#{@base_url}/#{page.escaped_url_path}" class="file">#{page.name}</a></li>}
|
||||
if defined? page.format
|
||||
%{<li><a href="#{@base_url}/#{page.escaped_url_path}" class="file">#{page.name}</a></li>}
|
||||
else
|
||||
%{<li><a href="#{@base_url}/#{page.escaped_url_path}#{page.name}" class="file">#{page.name}</a></li>}
|
||||
end
|
||||
end
|
||||
}.compact.join("\n")
|
||||
else
|
||||
|
||||
+18
-6
@@ -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 %{<li><a href="/Mordor/Eye-Of-Sauron" class="file">Eye Of Sauron</a></li>\n<li><a href="/pages/Mordor/Orc/" class="folder">Orc</a></li>}, @page.files_folders
|
||||
assert_equal %{<li><a href="/Mordor/Eye-Of-Sauron" class="file">Eye Of Sauron</a></li>\n<li><a href="/Mordor/Aragorn.pdf" class="file">Aragorn.pdf</a></li>\n<li><a href="/pages/Mordor/Orc/" class="folder">Orc</a></li>}, @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 %{<li><a href="/wiki/Mordor/Eye-Of-Sauron" class="file">Eye Of Sauron</a></li>\n<li><a href="/wiki/pages/Mordor/Orc/" class="folder">Orc</a></li>}, @page.files_folders
|
||||
assert_equal %{<li><a href="/wiki/Mordor/Eye-Of-Sauron" class="file">Eye Of Sauron</a></li>\n<li><a href=\"/wiki/Mordor/Aragorn.pdf\" class=\"file\">Aragorn.pdf</a></li>\n<li><a href="/wiki/pages/Mordor/Orc/" class="folder">Orc</a></li>}, @page.files_folders
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user