tpl: Make the Namespace func signature explicit
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 20 May 2017 08:28:33 +0000 (11:28 +0300)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 20 May 2017 08:34:38 +0000 (11:34 +0300)
This makes it cleaner and avoids breaking client code, such as the docs helper JSON generator.

37 files changed:
tpl/cast/init.go
tpl/cast/init_test.go
tpl/collections/init.go
tpl/collections/init_test.go
tpl/compare/init.go
tpl/compare/init_test.go
tpl/crypto/init.go
tpl/crypto/init_test.go
tpl/data/init.go
tpl/data/init_test.go
tpl/encoding/init.go
tpl/encoding/init_test.go
tpl/fmt/init.go
tpl/fmt/init_test.go
tpl/images/init.go
tpl/images/init_test.go
tpl/inflect/init.go
tpl/inflect/init_test.go
tpl/internal/templatefuncsRegistry.go
tpl/lang/init.go
tpl/lang/init_test.go
tpl/math/init.go
tpl/math/init_test.go
tpl/os/init.go
tpl/os/init_test.go
tpl/partials/init.go
tpl/partials/init_test.go
tpl/safe/init.go
tpl/safe/init_test.go
tpl/strings/init.go
tpl/strings/init_test.go
tpl/time/init.go
tpl/time/init_test.go
tpl/transform/init.go
tpl/transform/init_test.go
tpl/urls/init.go
tpl/urls/init_test.go

index 1c737ee58cc050cc3f36b907e9018c7eb06e20a8..57573e1881ce05ce18d85bae15271a2fcb514c91 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.ToInt,
index 22051495acfba08a5c66ce9c450489d5c558d4de..e52ef67505f04cda942b55e8ade0b3216e39948a 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 289228901ce86fb497d98ea2062477f8cca4668b..fa786684bd2d1e437a9d27b14d6d4fa2010e3d00 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.After,
index 1066caeaaa47e82f8bcb099ab134c78a524069ea..da2249678e3eecc3168043cf602079e779147ec4 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 0285abff5482bcbf512c964bd98a1cad3cd60a86..cc64dcf90bcf9b0029ec738e8098870613b6c429 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Default,
index 610c0e5cb7ba2250cd308dcbc10fc8b63b023819..3303e4f2325feffbf5071c20e16204f3c586feea 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index a47c3369fcd85baefe60d18697db06920283660d..08421e1b2ae1860f5d724909c42481c4552a19c2 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.MD5,
index 20c0201e5510ea00a25099eadda9c58b4e01f109..755f162d09fb3516e2a3440ab836cdcb3447cbbc 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index e9e4ca2f9d699fd397ee44d221e20d134f906864..5235714e9b6f38c972ee12f656ff6fe8f2f1834e 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.GetCSV,
index f912560c478cfa1833c2757724c9a00a8bce69ff..66bb0b2beb00a506db5494d117e8da7a25027d8b 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index b463942035816a28db1ceb623ba9b02fef625358..22f38cb20b77d1095c93146ea2351a5d91a8d262 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Base64Decode,
index f10f4b1f833a0cb2045d8cef99534fa921444058..7e40a6212b019d87d9981a24f6841e9add6c9940 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 98070b7773316e79ad8e7d5268414623cb5e9ddd..a9348f8bfbc3e3053bf4f180892c52b4a22c1e70 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Print,
index 9b71381d699b46ab95f5ecfcd8812f6a32d5c3f3..dbc6e97013ab043377b73ce5839b26f66b6489df 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 8e829f300c57db859db224190fa5cf5347f109a4..4a367b00c1ad4d3994109a93181b94ba2121cfc0 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Config,
index d4fc65484ac96f74e9b60c80265e94c80f85f825..2525fecb83d7595dc578f76f47a02c56c76041f1 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 50d012d350c79c906ea6b6ba9a4d058afc822c14..71884c649a1a4071405966ff0271478fe3883099 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Humanize,
index 741e8f797c9518e17202aecf86dd3c97f3c7e7e4..b24d7af33652e5e5c13254dfc4879041e2fdaec9 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index ced16e512347b2eb10419401c2772505fba24b2b..1ecdeca94ee9d60b215cd196d5d7a7b3fc22ebc1 100644 (file)
@@ -45,7 +45,7 @@ type TemplateFuncsNamespace struct {
        Name string
 
        // This is the method receiver.
-       Context interface{}
+       Context func(v ...interface{}) interface{}
 
        // Additional info, aliases and examples, per method name.
        MethodMappings map[string]TemplateFuncMethodMapping
@@ -165,7 +165,7 @@ func (t *TemplateFuncsNamespace) toJSON() ([]byte, error) {
 
        buf.WriteString(fmt.Sprintf(`%q: {`, t.Name))
 
-       ctx := t.Context.(func() interface{})()
+       ctx := t.Context()
        ctxType := reflect.TypeOf(ctx)
        for i := 0; i < ctxType.NumMethod(); i++ {
                method := ctxType.Method(i)
index ea67afab0280293195ef866017c20c5b329819c4..d0efa69975c50e3762b7ec832a0578be94b1c65d 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Translate,
index 8a03d18eb3aad99b3e9d5833826d59cdc9a62222..a32fa0ae4ba5fdef79710f7b8bf4dfe91175de04 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 65b22c516e390eff6966309e6f586b8a41b78f0c..7b2d319f229464068759b181bbec6e0470ce1b81 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Add,
index 70a8e3c9679d24539d7b01f41518fc9d47c15d7b..3204b35e34ca433f5609d7f227a102c94a7d5f68 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 264afd43a44d5912c2ec9ca7849860d097068f70..e0bcda1402e8fed88fd6ade8cbebe978dcb4f05b 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Getenv,
index 53d4c69202b63e4cd50aa65276b1bd160f9873a0..954e4cde2a4d03759c5aeeaba4cc5bc4cf028a06 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 4ee3faf199dbd2fd3524f65af79d9820f7a8da5e..496deed89f496efd3053c64cb864002c71bb2efa 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Include,
index b841f21515ca18a2e174629790df6d4466f5d939..f26067e3fd92632b5cf44ad6334aa269d6a8f802 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 94012a6cafaa92896f005f79bed6067b619e843b..eb3ee62453c697585fe52487b0559553d6b4197a 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.CSS,
index e18c5b12c0999b9291ecdca12cc0e42706961cdb..eee8523d017a93f116417a84ce1000e865f8a5e2 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 9f33bd176d7b4f383886fc2cfd06ea7facc1092e..e40fe9d39c4becad0fbd5d1e1041813eef666e1e 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Chomp,
index 5b76164067f7268c98cb6c2a8eed31f0a0eba8bc..22f4ba21fe95af3bb20298d15d16c24a4f2aabc9 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 8e21bca61288bebbe4a78bed784b037d998eded3..760986e5aca852563e23db0ecb5f2b2b6301239b 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name: name,
-                       Context: func(v ...interface{}) interface{} {
+                       Context: func(args ...interface{}) interface{} {
                                // Handle overlapping "time" namespace and func.
                                //
                                // If no args are passed to `time`, assume namespace usage and
@@ -34,11 +34,11 @@ func init() {
                                //
                                // If args are passed, call AsTime().
 
-                               if len(v) == 0 {
+                               if len(args) == 0 {
                                        return ctx
                                }
 
-                               t, err := ctx.AsTime(v[0])
+                               t, err := ctx.AsTime(args[0])
                                if err != nil {
                                        return err
                                }
index fd49dc4be70c79c86aa2314109f6ca2e40968abf..4f4ee5de5363c9ce28d3eab08bdbe2df5714cc79 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func(v ...interface{}) interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index 3483d1306f434e88bff78e28eb81f92d60ca2072..3262cec09b8ade684726d3c3b93498f9c29a31ce 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.Emojify,
index 26f81d7f156f05d7153434aa168eae8a841af23a..a6cb56561658803ce604591905564378617774de 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }
index e32807f32f4974f4daa45d716ab411110f38c722..c0440490d86b5fbb43b7791b8b9521092ce2b28f 100644 (file)
@@ -26,7 +26,7 @@ func init() {
 
                ns := &internal.TemplateFuncsNamespace{
                        Name:    name,
-                       Context: func() interface{} { return ctx },
+                       Context: func(args ...interface{}) interface{} { return ctx },
                }
 
                ns.AddMethodMapping(ctx.AbsURL,
index f619b2c000740accf1127e558f40ca71132f8314..5e53f3573a86af2342c274046cabf1414e5ac887 100644 (file)
@@ -34,5 +34,5 @@ func TestInit(t *testing.T) {
        }
 
        require.True(t, found)
-       require.IsType(t, &Namespace{}, ns.Context.(func() interface{})())
+       require.IsType(t, &Namespace{}, ns.Context())
 }