move formatted vs raw into Page

This commit is contained in:
Tom Preston-Werner
2010-04-10 11:29:57 -06:00
parent 8132f4c602
commit c37204e42a
5 changed files with 33 additions and 27 deletions
+6 -17
View File
@@ -230,12 +230,15 @@ Initialize the Gollum::Repo object:
gollum = Gollum::Wiki.new("my-gollum-repo.git") gollum = Gollum::Wiki.new("my-gollum-repo.git")
# => <Gollum::Wiki> # => <Gollum::Wiki>
Get the latest HTML formatted version of the given canonical page name: Get the latest version of the given human or canonical page name:
page = gollum.formatted_page('page-name') page = gollum.page('page-name')
# => <Gollum::Page> # => <Gollum::Page>
page.data page.raw_data
# => "# My wiki page"
page.formatted_data
# => "<h1>My wiki page</h1>" # => "<h1>My wiki page</h1>"
page.format page.format
@@ -247,20 +250,6 @@ Get the latest HTML formatted version of the given canonical page name:
vsn.id vsn.id
# => '3ca43e12377ea1e32ea5c9ce5992ec8bf266e3e5' # => '3ca43e12377ea1e32ea5c9ce5992ec8bf266e3e5'
Get the latest raw version of the given canonical page name:
gollum.raw_page('page-name')
# => <Gollum::Page>
page.data
# => "# My wiki page"
page.format
# => :markdown
page.version
# => <Gollum::Version>
Get a list of versions for a given canonical page name: Get a list of versions for a given canonical page name:
vsns = gollum.page_versions('page-name') vsns = gollum.page_versions('page-name')
+1
View File
@@ -1,5 +1,6 @@
# external # external
require 'grit' require 'grit'
require 'github/markup'
# internal # internal
require 'gollum/wiki' require 'gollum/wiki'
+17 -3
View File
@@ -23,10 +23,24 @@ module Gollum
self self
end end
# The contents of the page. # The on-disk filename of the page.
#
# Returns the String name.
def name
self.blob.name rescue nil
end
# The formatted contents of the page.
# #
# Returns the String data. # Returns the String data.
def data def formatted_data
GitHub::Markup.render(self.blob.name, self.blob.data) rescue nil
end
# The raw contents of the page.
#
# Returns the String data.
def raw_data
self.blob.data rescue nil self.blob.data rescue nil
end end
@@ -65,7 +79,7 @@ module Gollum
# Returns a Gollum::Page or nil if the page could not be found. # Returns a Gollum::Page or nil if the page could not be found.
def find(name) def find(name)
commit = self.wiki.repo.commits.first commit = self.wiki.repo.commits.first
content = find_page_in_tree(commit.tree, name) find_page_in_tree(commit.tree, name)
end end
# private # private
+1 -1
View File
@@ -17,7 +17,7 @@ module Gollum
# name - The human or canonical String page name of the wiki page. # name - The human or canonical String page name of the wiki page.
# #
# Returns a Gollum::Page or nil if no matching page was found. # Returns a Gollum::Page or nil if no matching page was found.
def formatted_page(name) def page(name)
Page.new(self).find(name) Page.new(self).find(name)
end end
end end
+8 -6
View File
@@ -7,21 +7,23 @@ context "Page" do
test "new page" do test "new page" do
page = Gollum::Page.new(@wiki) page = Gollum::Page.new(@wiki)
assert_nil page.data assert_nil page.raw_data
assert_nil page.formatted_data
end end
test "formatted page" do test "get existing page" do
page = @wiki.formatted_page('Bilbo Baggins') page = @wiki.page('Bilbo Baggins')
assert_equal Gollum::Page, page.class assert_equal Gollum::Page, page.class
assert page.data =~ /^# Bilbo Baggins\n\nBilbo Baggins/ assert page.raw_data =~ /^# Bilbo Baggins\n\nBilbo Baggins/
assert page.formatted_data =~ /<h1>Bilbo Baggins<\/h1>\n\n<p>Bilbo Baggins/
assert_equal :markdown, page.format assert_equal :markdown, page.format
end end
test "no page match" do test "no page match" do
assert_nil @wiki.formatted_page('I do not exist') assert_nil @wiki.page('I do not exist')
end end
test "no ext match" do test "no ext match" do
assert_nil @wiki.formatted_page('Data') assert_nil @wiki.page('Data')
end end
end end