chore: simplify render mode
This commit is contained in:
parent
789497d94c
commit
f6f4e30fb5
8 changed files with 21 additions and 19 deletions
|
|
@ -52,7 +52,7 @@ func (d *DeviceTest) Test() (DeviceTestResult, error) {
|
|||
|
||||
// configure creates a configured device from a template so we can test it
|
||||
func (d *DeviceTest) configure() (interface{}, error) {
|
||||
b, _, err := d.Template.RenderResult(templates.TemplateRenderModeInstance, d.ConfigValues)
|
||||
b, _, err := d.Template.RenderResult(templates.RenderModeInstance, d.ConfigValues)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ func (c *CmdConfigure) processDeviceValues(values map[string]interface{}, templa
|
|||
}
|
||||
}
|
||||
|
||||
b, _, err := templateItem.RenderResult(templates.TemplateRenderModeInstance, values)
|
||||
b, _, err := templateItem.RenderResult(templates.RenderModeInstance, values)
|
||||
if err != nil {
|
||||
c.addedDeviceIndex--
|
||||
return device, err
|
||||
|
|
@ -523,5 +523,5 @@ func (c *CmdConfigure) processModbusConfig(templateItem *templates.Template) {
|
|||
templateItem.ModbusParams(choiceTypes[index], values)
|
||||
|
||||
// update the modbus default values
|
||||
templateItem.ModbusValues(templates.TemplateRenderModeInstance, values)
|
||||
templateItem.ModbusValues(templates.RenderModeInstance, values)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ var documentationModbusTmpl string
|
|||
|
||||
// RenderDocumentation renders the documentation template
|
||||
func (t *Template) RenderDocumentation(product Product, lang string) ([]byte, error) {
|
||||
values := t.Defaults(TemplateRenderModeDocs)
|
||||
values := t.Defaults(RenderModeDocs)
|
||||
|
||||
for index, p := range t.Params {
|
||||
for k, v := range values {
|
||||
|
|
@ -51,7 +51,7 @@ func (t *Template) RenderDocumentation(product Product, lang string) ([]byte, er
|
|||
}
|
||||
|
||||
modbusData := make(map[string]interface{})
|
||||
t.ModbusValues(TemplateRenderModeDocs, modbusData)
|
||||
t.ModbusValues(RenderModeDocs, modbusData)
|
||||
|
||||
out := new(bytes.Buffer)
|
||||
if err := modbusTmpl.Execute(out, modbusData); err != nil {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ func RenderInstance(class Class, other map[string]interface{}) (*Instance, error
|
|||
return nil, err
|
||||
}
|
||||
|
||||
b, _, err := tmpl.RenderResult(TemplateRenderModeInstance, other)
|
||||
b, _, err := tmpl.RenderResult(RenderModeInstance, other)
|
||||
if err != nil {
|
||||
return nil, util.NewConfigError(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import (
|
|||
func test(t *testing.T, tmpl Template, values map[string]interface{}, cb func(values map[string]interface{})) {
|
||||
t.Helper()
|
||||
|
||||
b, _, err := tmpl.RenderResult(TemplateRenderModeInstance, values)
|
||||
b, _, err := tmpl.RenderResult(RenderModeInstance, values)
|
||||
if err != nil {
|
||||
t.Log(string(b))
|
||||
t.Error(err)
|
||||
|
|
@ -40,7 +40,7 @@ func TestClass(t *testing.T, class Class, instantiate func(t *testing.T, values
|
|||
tmpl := tmpl
|
||||
|
||||
// set default values for all params
|
||||
values := tmpl.Defaults(TemplateRenderModeUnitTest)
|
||||
values := tmpl.Defaults(RenderModeUnitTest)
|
||||
|
||||
// set modbus default test values
|
||||
if values[ParamModbus] != nil {
|
||||
|
|
@ -51,7 +51,7 @@ func TestClass(t *testing.T, class Class, instantiate func(t *testing.T, values
|
|||
} else {
|
||||
values[ModbusKeyRS485TCPIP] = true
|
||||
}
|
||||
tmpl.ModbusValues(TemplateRenderModeUnitTest, values)
|
||||
tmpl.ModbusValues(RenderModeUnitTest, values)
|
||||
}
|
||||
|
||||
// set the template value which is needed for rendering
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ func (t *Template) GroupTitle(lang string) string {
|
|||
}
|
||||
|
||||
// Defaults returns a map of default values for the template
|
||||
func (t *Template) Defaults(renderMode string) map[string]interface{} {
|
||||
func (t *Template) Defaults(renderMode int) map[string]interface{} {
|
||||
values := make(map[string]interface{})
|
||||
for _, p := range t.Params {
|
||||
values[p.Name] = p.DefaultValue(renderMode)
|
||||
|
|
@ -268,7 +268,7 @@ func (t *Template) RenderProxyWithValues(values map[string]interface{}, lang str
|
|||
}
|
||||
|
||||
// RenderResult renders the result template to instantiate the proxy
|
||||
func (t *Template) RenderResult(renderMode string, other map[string]interface{}) ([]byte, map[string]interface{}, error) {
|
||||
func (t *Template) RenderResult(renderMode int, other map[string]interface{}) ([]byte, map[string]interface{}, error) {
|
||||
values := t.Defaults(renderMode)
|
||||
if err := util.DecodeOther(other, &values); err != nil {
|
||||
return nil, values, err
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ func (t *Template) ModbusParams(modbusType string, values map[string]interface{}
|
|||
}
|
||||
|
||||
// ModbusValues adds the values required for modbus.tpl to the value map
|
||||
func (t *Template) ModbusValues(renderMode string, values map[string]interface{}) {
|
||||
func (t *Template) ModbusValues(renderMode int, values map[string]interface{}) {
|
||||
choices := t.ModbusChoices()
|
||||
if len(choices) == 0 {
|
||||
return
|
||||
|
|
@ -95,7 +95,7 @@ func (t *Template) ModbusValues(renderMode string, values map[string]interface{}
|
|||
// for modbus params the default value is carried
|
||||
// using the parameter default, not the value
|
||||
// TODO figure out why that's necessary
|
||||
if renderMode == TemplateRenderModeInstance {
|
||||
if renderMode == RenderModeInstance {
|
||||
t.SetParamDefault(p.Name, defaultValue)
|
||||
} else {
|
||||
values[p.Name] = defaultValue
|
||||
|
|
@ -103,7 +103,7 @@ func (t *Template) ModbusValues(renderMode string, values map[string]interface{}
|
|||
}
|
||||
}
|
||||
|
||||
if renderMode == TemplateRenderModeDocs {
|
||||
if renderMode == RenderModeDocs {
|
||||
values[iface] = true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,10 +39,12 @@ const (
|
|||
ModbusParamNameHost = "host"
|
||||
ModbusParamNamePort = "port"
|
||||
ModbusParamNameRTU = "rtu"
|
||||
)
|
||||
|
||||
TemplateRenderModeDocs = "docs"
|
||||
TemplateRenderModeUnitTest = "unittest"
|
||||
TemplateRenderModeInstance = "instance"
|
||||
const (
|
||||
RenderModeDocs int = iota
|
||||
RenderModeUnitTest
|
||||
RenderModeInstance
|
||||
)
|
||||
|
||||
var ValidModbusChoices = []string{ModbusChoiceRS485, ModbusChoiceTCPIP}
|
||||
|
|
@ -193,13 +195,13 @@ type Param struct {
|
|||
}
|
||||
|
||||
// DefaultValue returns a default or example value depending on the renderMode
|
||||
func (p *Param) DefaultValue(renderMode string) interface{} {
|
||||
func (p *Param) DefaultValue(renderMode int) interface{} {
|
||||
// return empty list to allow iterating over in template
|
||||
if p.Type == TypeStringList {
|
||||
return []string{}
|
||||
}
|
||||
|
||||
if (renderMode == TemplateRenderModeDocs || renderMode == TemplateRenderModeUnitTest) && p.Default == "" {
|
||||
if (renderMode == RenderModeDocs || renderMode == RenderModeUnitTest) && p.Default == "" {
|
||||
return p.Example
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue