Created SpaceList type

This commit is contained in:
Brandon Dyck 2019-08-31 09:47:37 -06:00
parent 0e29901b4f
commit 287d0036f3
5 changed files with 41 additions and 18 deletions

View File

@ -19,7 +19,7 @@ func Accept(value ...string) hatmill.Attrib {
func AcceptCharset(value ...string) hatmill.Attrib { func AcceptCharset(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "accept-charset", Key: "accept-charset",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }
@ -103,7 +103,7 @@ func Cite(value string) hatmill.Attrib {
func Class(value ...string) hatmill.Attrib { func Class(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "class", Key: "class",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }
@ -243,7 +243,7 @@ func Enctype(value string) hatmill.Attrib {
func For(value ...string) hatmill.Attrib { func For(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "for", Key: "for",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }
@ -275,7 +275,7 @@ func Formmethod(value string) hatmill.Attrib {
func Headers(value ...string) hatmill.Attrib { func Headers(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "headers", Key: "headers",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }
@ -500,7 +500,7 @@ func Pattern(value string) hatmill.Attrib {
func Ping(value ...string) hatmill.Attrib { func Ping(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "ping", Key: "ping",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }
@ -547,7 +547,7 @@ func Referrerpolicy(value string) hatmill.Attrib {
func Rel(value ...string) hatmill.Attrib { func Rel(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "rel", Key: "rel",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }
@ -585,7 +585,7 @@ func Rowspan(value int) hatmill.Attrib {
func Sandbox(value ...string) hatmill.Attrib { func Sandbox(value ...string) hatmill.Attrib {
return hatmill.Attrib{ return hatmill.Attrib{
Key: "sandbox", Key: "sandbox",
Value: String(strings.Join(value, " ")), Value: String(SpaceList(value).String()),
} }
} }

View File

@ -14,15 +14,6 @@ func testAttribValue(t *testing.T, attrib hatmill.Attrib, expectedValue string)
} }
} }
func TestSpaceList(t *testing.T) {
t.Run("empty", func(t *testing.T) {
testAttribValue(t, attribute.Class(), "")
})
t.Run("nonempty", func(t *testing.T) {
testAttribValue(t, attribute.Class("alpha", "bravo", "charlie"), "alpha bravo charlie")
})
}
func TestCommaList(t *testing.T) { func TestCommaList(t *testing.T) {
t.Run("empty", func(t *testing.T) { t.Run("empty", func(t *testing.T) {
testAttribValue(t, attribute.Class(), "") testAttribValue(t, attribute.Class(), "")

9
attribute/value_types.go Normal file
View File

@ -0,0 +1,9 @@
package attribute
import "strings"
type SpaceList []string
func (l SpaceList) String() string {
return strings.Join(l, " ")
}

View File

@ -0,0 +1,24 @@
package attribute_test
import (
"gitlab.codemonkeysoftware.net/b/hatmill/attribute"
"testing"
)
func expectEqualStrings(t *testing.T, actual, expected string) {
if actual != expected {
t.Fatalf("expected %q, got %q", expected, actual)
}
}
func TestSpaceList(t *testing.T) {
t.Run("empty", func(t *testing.T) {
expectEqualStrings(t, attribute.SpaceList{}.String(), "")
})
t.Run("nonempty", func(t *testing.T) {
expected := "alpha bravo charlie"
actual := attribute.SpaceList{"alpha", "bravo", "charlie"}.String()
expectEqualStrings(t, actual, expected)
})
}

View File

@ -68,8 +68,7 @@ var attribTypes = map[string]AttribTypeInfo{
Imports: []string{"strconv"}, Imports: []string{"strconv"},
}, },
"space list": { "space list": {
Template: listTemplate(" "), Template: simpleTemplate("...string", "SpaceList(%s).String()"),
Imports: []string{"strings"},
}, },
"comma list": { "comma list": {
Template: listTemplate(","), Template: listTemplate(","),