Skip to content

Commit 8cf23f8

Browse files
authored
Merge pull request #24 from gcp-kit/issue/23/main
[]stringの場合も置換するようにした
2 parents c232a92 + 0196619 commit 8cf23f8

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

pkg/inserter/common_inserter.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,35 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa
9292
reg := regexp.MustCompile(`\#\{.*?\}`)
9393
for k, v := range item {
9494
switch vt := v.(type) {
95+
case []interface{}:
96+
new := make([]string, len(vt))
97+
isStr := true
98+
for i, vtv := range vt {
99+
vStr, ok := vtv.(string)
100+
if !ok {
101+
isStr = false
102+
break
103+
}
104+
if strings.HasPrefix(vStr, "$") && !reg.MatchString(vStr) {
105+
refID := strings.TrimPrefix(vStr, "$")
106+
rv, ok := c.refIDs[refID]
107+
if !ok {
108+
log.Printf("%s was not found", refID)
109+
} else {
110+
new[i] = rv
111+
}
112+
continue
113+
}
114+
n := c.replaceMultiRefs(vStr, reg)
115+
if n != "" {
116+
new[i] = n
117+
continue
118+
}
119+
new[i] = vStr
120+
}
121+
if isStr {
122+
item[k] = new
123+
}
95124
case map[string]interface{}:
96125
for vtk, vtv := range vt {
97126
if strings.HasPrefix(vtk, "$") && !reg.MatchString(vtk) {

samples/Survey/dummies.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
payload: {
55
defaultOption: "$Option__dummy_0",
66
optionsText: "/#{Option__dummy_0}/#{Option__dummy_0}/",
7+
optionsArray: ["$Option__dummy_0", "#{Option__dummy_1}(default)"],
8+
point: [10, 30],
9+
postText: ["10", "30"],
710
options: {
811
$Option__dummy_0: true,
912
$Option__dummy_1: true,

0 commit comments

Comments
 (0)