From 769bf89587b2756013d7ae7c6f47381ad036d6b4 Mon Sep 17 00:00:00 2001 From: Tom Preston-Werner Date: Sun, 11 Apr 2010 12:40:29 -0600 Subject: [PATCH] implement version-specific page find --- README.md | 3 +-- lib/gollum/page.rb | 7 ++++--- lib/gollum/wiki.rb | 7 ++++--- test/test_page.rb | 5 +++++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index badab3da..b187dde2 100644 --- a/README.md +++ b/README.md @@ -263,8 +263,7 @@ Get a list of versions for a given page: Get a specific version of a given canonical page file: - gollum.formatted_page('page-name', '5ec521178e0eec4dc39741a8978a2ba6616d0f0a') - gollum.raw_page('page-name', '5ec521178e0eec4dc39741a8978a2ba6616d0f0a') + gollum.page('page-name', '5ec521178e0eec4dc39741a8978a2ba6616d0f0a') Get the latest version of a given static file: diff --git a/lib/gollum/page.rb b/lib/gollum/page.rb index aacdc20a..6548d79c 100644 --- a/lib/gollum/page.rb +++ b/lib/gollum/page.rb @@ -83,11 +83,12 @@ module Gollum # Find a page in the given Gollum repo. # - # name - The human or canonical String page name to find. + # name - The human or canonical String page name to find. + # version - The String version ID to find. # # Returns a Gollum::Page or nil if the page could not be found. - def find(name) - commit = self.wiki.repo.commits.first + def find(name, version) + commit = self.wiki.repo.commit(version) if page = find_page_in_tree(commit.tree, name) page.version = commit page diff --git a/lib/gollum/wiki.rb b/lib/gollum/wiki.rb index df5c1643..c93b22e2 100644 --- a/lib/gollum/wiki.rb +++ b/lib/gollum/wiki.rb @@ -14,11 +14,12 @@ module Gollum # Get the formatted page for a given page name. # - # name - The human or canonical String page name of the wiki page. + # name - The human or canonical String page name of the wiki page. + # version - The String version ID to find (default: "master"). # # Returns a Gollum::Page or nil if no matching page was found. - def page(name) - Page.new(self).find(name) + def page(name, version = 'master') + Page.new(self).find(name, version) end end end \ No newline at end of file diff --git a/test/test_page.rb b/test/test_page.rb index f7c83502..da398ef6 100644 --- a/test/test_page.rb +++ b/test/test_page.rb @@ -32,6 +32,11 @@ context "Page" do page.versions.map { |v| v.id } end + test "specific page version" do + page = @wiki.page('Bilbo Baggins', 'fbabba862dfa7ac35b39042dd4ad780c9f67b8cb') + assert_equal 'fbabba862dfa7ac35b39042dd4ad780c9f67b8cb', page.version.id + end + test "no page match" do assert_nil @wiki.page('I do not exist') end