From e37a8b9da473cb0301d40be28b72e15b0bee31d1 Mon Sep 17 00:00:00 2001 From: rick Date: Thu, 16 Sep 2010 09:16:42 -0700 Subject: [PATCH] Gollum::Wiki#pages come back sorted by title, not permalink or the default ordering from `git ls-tree`. --- lib/gollum/wiki.rb | 4 +++- .../30/8fdf72d89351bf53fa6eeb00884273047e07fa | 2 ++ .../eb/578ff8ed46c6cc579d1a474fb2b94487f420fd | Bin 0 -> 259 bytes .../ed/d74f8d7f6d025d66eb67411c5db60959ae16fd | Bin 0 -> 35 bytes test/examples/lotr.git/refs/heads/master | 2 +- test/test_wiki.rb | 16 ++++++++-------- 6 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 test/examples/lotr.git/objects/30/8fdf72d89351bf53fa6eeb00884273047e07fa create mode 100644 test/examples/lotr.git/objects/eb/578ff8ed46c6cc579d1a474fb2b94487f420fd create mode 100644 test/examples/lotr.git/objects/ed/d74f8d7f6d025d66eb67411c5db60959ae16fd diff --git a/lib/gollum/wiki.rb b/lib/gollum/wiki.rb index 16c4ed24..afdf2432 100644 --- a/lib/gollum/wiki.rb +++ b/lib/gollum/wiki.rb @@ -221,7 +221,9 @@ module Gollum # # Returns an Array of Gollum::Page instances. def pages(treeish = nil) - tree_list(treeish || 'master') + tree_list(treeish || 'master').sort! do |x, y| + x.title.downcase <=> y.title.downcase + end end # Public: Returns the number of pages accessible from a commit diff --git a/test/examples/lotr.git/objects/30/8fdf72d89351bf53fa6eeb00884273047e07fa b/test/examples/lotr.git/objects/30/8fdf72d89351bf53fa6eeb00884273047e07fa new file mode 100644 index 00000000..c32de7a4 --- /dev/null +++ b/test/examples/lotr.git/objects/30/8fdf72d89351bf53fa6eeb00884273047e07fa @@ -0,0 +1,2 @@ +x[ +0@QـyD$AH:=pᖾM$(UJ(ǹtqyv.EvVsUo 3Q9悞1!#~Vp*Fe䂟dᬣcOPa!m[@hrH \ No newline at end of file diff --git a/test/examples/lotr.git/objects/eb/578ff8ed46c6cc579d1a474fb2b94487f420fd b/test/examples/lotr.git/objects/eb/578ff8ed46c6cc579d1a474fb2b94487f420fd new file mode 100644 index 0000000000000000000000000000000000000000..ac381fc686fc02d1b598e779622e31abd3f8eeb3 GIT binary patch literal 259 zcmV+e0sQ`W0V^p=O;s>5vt%$dFfcPQQEYF!db67`ac%NP!Cv765^Et{jSigD5tv+XNdLiAXnYCQ6DQ}s$x zD@rnRQW<_de;@3kpuNjcbM+lzHr`3oZ%#=yF#rMu-~6JK{2~Sw&qEo~Yya9v%IM|0CTHfCf}OQ$oBWHpVLuXmxEcd*nf$c8^Y&K;RAszdett=6 z5yeJ)dM+Us;jnb>Wdk?X|% J0sy`NYkFF0f7Jj0 literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/ed/d74f8d7f6d025d66eb67411c5db60959ae16fd b/test/examples/lotr.git/objects/ed/d74f8d7f6d025d66eb67411c5db60959ae16fd new file mode 100644 index 0000000000000000000000000000000000000000..b0c2bb523dab58e5913f7865e1b96bb9eb24df07 GIT binary patch literal 35 rcmb 2).map { |c| c.id } end - test "list pages" do + test "list pages, sorted by title" do pages = @wiki.pages assert_equal \ - %w(Bilbo-Baggins.md Eye-Of-Sauron.md Home.textile My-Precious.md), - pages.map { |p| p.filename }.sort + %w(bilbo.md Bilbo-Baggins.md Eye-Of-Sauron.md My-Precious.md Home.textile), + pages.map { |p| p.filename } end test "counts pages" do - assert_equal 4, @wiki.size + assert_equal 5, @wiki.size end test "normalizes commit hash" do @@ -64,9 +64,9 @@ context "Wiki" do assert @wiki.ref_map.empty? assert @wiki.tree_map.empty? @wiki.tree_map_for 'master' - assert_equal({"master"=>"60f12f4254f58801b9ee7db7bca5fa8aeefaa56b"}, @wiki.ref_map) + assert_equal({"master"=>"308fdf72d89351bf53fa6eeb00884273047e07fa"}, @wiki.ref_map) - map = @wiki.tree_map['60f12f4254f58801b9ee7db7bca5fa8aeefaa56b'] + map = @wiki.tree_map['308fdf72d89351bf53fa6eeb00884273047e07fa'] assert_equal 'Bilbo-Baggins.md', map[0].path assert_equal '', map[0].dir assert_equal map[0].path, map[0].name @@ -77,10 +77,10 @@ context "Wiki" do test "#tree_map_for only caches tree for commit" do assert @wiki.tree_map.empty? - @wiki.tree_map_for '60f12f4254f58801b9ee7db7bca5fa8aeefaa56b' + @wiki.tree_map_for '308fdf72d89351bf53fa6eeb00884273047e07fa' assert @wiki.ref_map.empty? - entry = @wiki.tree_map['60f12f4254f58801b9ee7db7bca5fa8aeefaa56b'][0] + entry = @wiki.tree_map['308fdf72d89351bf53fa6eeb00884273047e07fa'][0] assert_equal 'Bilbo-Baggins.md', entry.path end end