Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-10-11 12:09:43 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-10-13 13:36:17 +0300
commitf4f566edf4bd6a590cf9cdbd5cfc0026ecd93b14 (patch)
tree01545b36a279b80b5dbf732954e0bb41e73df5b5 /resources/page
parent7b3edc293144dd450e87ca32f238221c21eb1b47 (diff)
Make Pages.Prev/Next work like the other Prev/Next methods
Fixes #4500
Diffstat (limited to 'resources/page')
-rw-r--r--resources/page/pages_prev_next.go14
-rw-r--r--resources/page/pages_prev_next_test.go30
-rw-r--r--resources/page/weighted.go12
3 files changed, 30 insertions, 26 deletions
diff --git a/resources/page/pages_prev_next.go b/resources/page/pages_prev_next.go
index 9293c9874..dd87aa4ce 100644
--- a/resources/page/pages_prev_next.go
+++ b/resources/page/pages_prev_next.go
@@ -13,13 +13,12 @@
package page
-// Prev returns the previous page reletive to the given
-func (p Pages) Prev(cur Page) Page {
+// Next returns the next page reletive to the given
+func (p Pages) Next(cur Page) Page {
for x, c := range p {
if c.Eq(cur) {
if x == 0 {
- // TODO(bep) consider return nil here to get it line with the other Prevs
- return p[len(p)-1]
+ return nil
}
return p[x-1]
}
@@ -27,15 +26,14 @@ func (p Pages) Prev(cur Page) Page {
return nil
}
-// Next returns the next page reletive to the given
-func (p Pages) Next(cur Page) Page {
+// Prev returns the previous page reletive to the given
+func (p Pages) Prev(cur Page) Page {
for x, c := range p {
if c.Eq(cur) {
if x < len(p)-1 {
return p[x+1]
}
- // TODO(bep) consider return nil here to get it line with the other Nexts
- return p[0]
+ return nil
}
}
return nil
diff --git a/resources/page/pages_prev_next_test.go b/resources/page/pages_prev_next_test.go
index a75335f00..689e102c2 100644
--- a/resources/page/pages_prev_next_test.go
+++ b/resources/page/pages_prev_next_test.go
@@ -38,18 +38,20 @@ func TestPrev(t *testing.T) {
t.Parallel()
c := qt.New(t)
pages := preparePageGroupTestPages(t)
- c.Assert(pages[4], qt.Equals, pages.Prev(pages[0]))
- c.Assert(pages[0], qt.Equals, pages.Prev(pages[1]))
- c.Assert(pages[3], qt.Equals, pages.Prev(pages[4]))
+
+ c.Assert(pages.Prev(pages[3]), qt.Equals, pages[4])
+ c.Assert(pages.Prev(pages[1]), qt.Equals, pages[2])
+ c.Assert(pages.Prev(pages[4]), qt.IsNil)
}
func TestNext(t *testing.T) {
t.Parallel()
c := qt.New(t)
pages := preparePageGroupTestPages(t)
- c.Assert(pages[1], qt.Equals, pages.Next(pages[0]))
- c.Assert(pages[2], qt.Equals, pages.Next(pages[1]))
- c.Assert(pages[0], qt.Equals, pages.Next(pages[4]))
+
+ c.Assert(pages.Next(pages[0]), qt.IsNil)
+ c.Assert(pages.Next(pages[1]), qt.Equals, pages[0])
+ c.Assert(pages.Next(pages[4]), qt.Equals, pages[3])
}
func prepareWeightedPagesPrevNext(t *testing.T) WeightedPages {
@@ -72,16 +74,20 @@ func TestWeightedPagesPrev(t *testing.T) {
t.Parallel()
c := qt.New(t)
w := prepareWeightedPagesPrevNext(t)
- c.Assert(w[4].Page, qt.Equals, w.Prev(w[0].Page))
- c.Assert(w[0].Page, qt.Equals, w.Prev(w[1].Page))
- c.Assert(w[3].Page, qt.Equals, w.Prev(w[4].Page))
+
+ c.Assert(w.Prev(w[0].Page), qt.Equals, w[1].Page)
+ c.Assert(w.Prev(w[1].Page), qt.Equals, w[2].Page)
+ c.Assert(w.Prev(w[4].Page), qt.IsNil)
+
}
func TestWeightedPagesNext(t *testing.T) {
t.Parallel()
c := qt.New(t)
w := prepareWeightedPagesPrevNext(t)
- c.Assert(w[1].Page, qt.Equals, w.Next(w[0].Page))
- c.Assert(w[2].Page, qt.Equals, w.Next(w[1].Page))
- c.Assert(w[0].Page, qt.Equals, w.Next(w[4].Page))
+
+ c.Assert(w.Next(w[0].Page), qt.IsNil)
+ c.Assert(w.Next(w[1].Page), qt.Equals, w[0].Page)
+ c.Assert(w.Next(w[4].Page), qt.Equals, w[3].Page)
+
}
diff --git a/resources/page/weighted.go b/resources/page/weighted.go
index 48ed736ce..b2fc8b67b 100644
--- a/resources/page/weighted.go
+++ b/resources/page/weighted.go
@@ -95,13 +95,13 @@ func (wp WeightedPages) Pages() Pages {
return pages
}
-// Prev returns the previous Page relative to the given Page in
+// Next returns the next Page relative to the given Page in
// this weighted page set.
-func (wp WeightedPages) Prev(cur Page) Page {
+func (wp WeightedPages) Next(cur Page) Page {
for x, c := range wp {
if c.Page == cur {
if x == 0 {
- return wp[len(wp)-1].Page
+ return nil
}
return wp[x-1].Page
}
@@ -109,15 +109,15 @@ func (wp WeightedPages) Prev(cur Page) Page {
return nil
}
-// Next returns the next Page relative to the given Page in
+// Prev returns the previous Page relative to the given Page in
// this weighted page set.
-func (wp WeightedPages) Next(cur Page) Page {
+func (wp WeightedPages) Prev(cur Page) Page {
for x, c := range wp {
if c.Page == cur {
if x < len(wp)-1 {
return wp[x+1].Page
}
- return wp[0].Page
+ return nil
}
}
return nil