return val
}
+// Values returns the raw backing map. Note that you should just use
+// this method on the locally scoped Scratch instances you obtain via newScratch, not
+// .Page.Scratch etc., as that will lead to concurrency issues.
+func (c *Scratch) Values() map[string]interface{} {
+ c.mu.RLock()
+ defer c.mu.RUnlock()
+ return c.values
+}
+
// SetInMap stores a value to a map with the given key in the Node context.
// This map can later be retrieved with GetSortedMapValues.
func (c *Scratch) SetInMap(key string, mapKey string, value interface{}) string {
return sortedArray
}
-// NewScratch returns a new instance Scratch.
+// NewScratch returns a new instance of Scratch.
func NewScratch() *Scratch {
return &Scratch{values: make(map[string]interface{})}
}
scratch.Add("scratch", scratch)
_, err := scratch.Add("scratch", scratch)
+ m := scratch.Values()
+ c.Assert(m, qt.HasLen, 5)
+
if err == nil {
t.Errorf("Expected error from invalid arithmetic")
}
{{ .Scratch.Delete "greetings" }}
```
+#### .Values
+
+`Values` returns the raw backing map. Note that you should just use this method on the locally scoped `Scratch` instances you obtain via `newScratch`, not
+ `.Page.Scratch` etc., as that will lead to concurrency issues.
+
## Scope
The scope of the backing data is global for the given `Page` or `Shortcode`, and spans partial and shortcode includes.