Making direction optional (and setting defaults) for GroupBy Pages functionality.
authorspf13 <steve.francia@gmail.com>
Sat, 30 Aug 2014 03:51:29 +0000 (23:51 -0400)
committerspf13 <steve.francia@gmail.com>
Sat, 30 Aug 2014 03:51:29 +0000 (23:51 -0400)
hugolib/pageGroup.go

index 5b4b9a5e7af53e0d36715f64aac1fa128091953a..9d8d9d62cf9ac2cf3be3a06c32352ec4e6a3a972 100644 (file)
@@ -62,7 +62,6 @@ func sortKeys(v []reflect.Value, order string) []reflect.Value {
        return v
 }
 
-func (p Pages) GroupBy(key, order string) ([]PageGroup, error) {
 type PagesGroup []PageGroup
 
 func (p PagesGroup) Reverse() PagesGroup {
@@ -73,12 +72,15 @@ func (p PagesGroup) Reverse() PagesGroup {
        return p
 }
 
+func (p Pages) GroupBy(key string, order ...string) (PagesGroup, error) {
        if len(p) < 1 {
                return nil, nil
        }
 
-       if order != "asc" && order != "desc" {
-               return nil, errors.New("order argument must be 'asc' or 'desc'")
+       direction := "asc"
+
+       if len(order) > 0 && (strings.ToLower(order[0]) == "desc" || strings.ToLower(order[0]) == "rev" || strings.ToLower(order[0]) == "reverse") {
+               direction = "desc"
        }
 
        ppt := reflect.TypeOf(&Page{})
@@ -105,17 +107,14 @@ func (p PagesGroup) Reverse() PagesGroup {
        return r, nil
 }
 
-func (p Pages) GroupByDate(format, order string) ([]PageGroup, error) {
+func (p Pages) GroupByDate(format string, order ...string) (PagesGroup, error) {
        if len(p) < 1 {
                return nil, nil
        }
 
-       if order != "asc" && order != "desc" {
-               return nil, errors.New("order argument must be 'asc' or 'desc'")
-       }
-
        sp := p.ByDate()
-       if order == "desc" {
+
+       if !(len(order) > 0 && (strings.ToLower(order[0]) == "asc" || strings.ToLower(order[0]) == "rev" || strings.ToLower(order[0]) == "reverse")) {
                sp = sp.Reverse()
        }