summaryrefslogtreecommitdiff
path: root/docs-src/content
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2019-01-29 22:00:57 -0500
committerDave Henderson <dhenderson@gmail.com>2019-01-29 22:29:22 -0500
commit8a50b114e18069b1be388102a128869a9861555b (patch)
treeead9d88ba23658da8515c5b494971060b6effbfd /docs-src/content
parent8695b4f6d86bfa3c241f65bf362e36600da97495 (diff)
New coll.Merge function
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'docs-src/content')
-rw-r--r--docs-src/content/functions/coll.yml31
1 files changed, 31 insertions, 0 deletions
diff --git a/docs-src/content/functions/coll.yml b/docs-src/content/functions/coll.yml
index c4d61dce..158df4b2 100644
--- a/docs-src/content/functions/coll.yml
+++ b/docs-src/content/functions/coll.yml
@@ -195,3 +195,34 @@ funcs:
- |
$ gomplate -i '{{ slice 4 3 2 1 | reverse }}'
[1 2 3 4]
+ - name: coll.Merge
+ alias: merge
+ description: |
+ Merge maps together by overriding src with dst.
+
+ In other words, the src map can be configured the "default" map, whereas the dst
+ map can be configured the "overrides".
+
+ Many source maps can be provided. Precedence is in left-to-right order.
+
+ Note that this function _changes_ the destination map.
+ pipeline: true
+ arguments:
+ - name: dst
+ required: true
+ description: the map to merge _into_
+ - name: srcs...
+ required: true
+ description: the map (or maps) to merge _from_
+ examples:
+ - |
+ $ gomplate -i '{{ $default := dict "foo" 1 "bar" 2}}
+ {{ $config := dict "foo" 8 }}
+ {{ merge $config $default }}'
+ map[bar:2 foo:8]
+ - |
+ $ gomplate -i '{{ $dst := dict "foo" 1 "bar" 2 }}
+ {{ $src1 := dict "foo" 8 "baz" 4 }}
+ {{ $src2 := dict "foo" 3 "bar" 5 }}
+ {{ coll.Merge $dst $src1 $src2 }}'
+ map[foo:1 bar:5 baz:4]