sparkle_formation 3.0.22 → 3.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f10d97f5400c05205b7164247b875d778ae0491
|
4
|
+
data.tar.gz: 6b3dd43d3cbd5a63117f03c7241bb47cc1fa3926
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7aafb751e1c143ac1e19fbb2b18965f66a7d7b92d6d5254495dc05603462bec8359d0866f7be643bb5603106e9be2352fd627e6669f13873d27c0d0e27a2dc6
|
7
|
+
data.tar.gz: 12e0402332fd2b41605847be8c10243648203a3e8d63facfe230cd86a3660f8e9a4335c9e51f76c4466a93e322f18ebd2fc5c43afcc3e69d51cc077a1ceb0e58
|
data/CHANGELOG.md
CHANGED
@@ -53,7 +53,7 @@ defining options for the parameter. The available items within the option
|
|
53
53
|
|-----------------------|-------------|-----------------------------------------
|
54
54
|
| `:type` | Description | Data type of parameter
|
55
55
|
| | Required | yes
|
56
|
-
| | Valid | `:number`, `:string`
|
56
|
+
| | Valid | `:number`, `:string`, `:complex`
|
57
57
|
| | Default | none
|
58
58
|
|-----------------------|-------------|-----------------------------------------
|
59
59
|
| `:description` | Description | Description of the parameter
|
@@ -140,6 +140,28 @@ The resulting value when accessed will be:
|
|
140
140
|
]
|
141
141
|
~~~
|
142
142
|
|
143
|
+
##### Complex type support
|
144
|
+
|
145
|
+
Complex types are supported but should rarely be used. Defining these types of compile
|
146
|
+
time parameters impose restrictions on templates and make them much less flexible. However,
|
147
|
+
there may be cases where providing a complex type to a template is ideal. It is important to
|
148
|
+
note these restrictions:
|
149
|
+
|
150
|
+
* No `:multiple` support
|
151
|
+
* No user defined input via sfn CLI
|
152
|
+
* No template serialization
|
153
|
+
|
154
|
+
The last restriction is extremely important. Compile time parameters are stored in a template's
|
155
|
+
outputs. This is done to support template reprocessing and change detection. Complex types are
|
156
|
+
not stored within the template output due to the fragility introduced by the dependency on the
|
157
|
+
complex type to properly serialize itself. The size of the serialization is also a concern which
|
158
|
+
can easily invalidate a template due to size restrictions given a sufficiently complex type.
|
159
|
+
|
160
|
+
In general complex types should never be used. Given a situation where complex types may seem
|
161
|
+
like the correct solution, re-evaluate the usage and determine no other solution can be implemented
|
162
|
+
to solve the problem. Compile time parameters already make templates less flexible and complex
|
163
|
+
types increases this rigidity.
|
164
|
+
|
143
165
|
##### Prompting when nested
|
144
166
|
|
145
167
|
The `:prompt_when_nested` is used by implementations to suppress parameter prompts
|
@@ -597,7 +597,7 @@ class SparkleFormation
|
|
597
597
|
'max_value', 'min_value'
|
598
598
|
]
|
599
599
|
# Allowed data types for parameters
|
600
|
-
VALID_GENERATION_PARAMETER_TYPES = ['String', 'Number']
|
600
|
+
VALID_GENERATION_PARAMETER_TYPES = ['String', 'Number', 'Complex']
|
601
601
|
|
602
602
|
# Get or set the compile time parameter setting block. If a get
|
603
603
|
# request the ancestor path will be searched to root
|
@@ -752,7 +752,13 @@ class SparkleFormation
|
|
752
752
|
# @param compiled [AttributeStruct]
|
753
753
|
# @return [AttributeStruct]
|
754
754
|
def set_compiled_state(compiled)
|
755
|
-
|
755
|
+
storage_compile_state = Smash.new
|
756
|
+
parameters.each do |param_key, param_config|
|
757
|
+
if(param_config.fetch(:type, 'string').to_s.downcase.to_sym != :complex)
|
758
|
+
storage_compile_state[param_key] = compile_state[param_key]
|
759
|
+
end
|
760
|
+
end
|
761
|
+
compiled.outputs.compile_state.value MultiJson.dump(storage_compile_state)
|
756
762
|
compiled
|
757
763
|
end
|
758
764
|
|
@@ -123,11 +123,15 @@ class SparkleFormation
|
|
123
123
|
else
|
124
124
|
sym = function_bubbler(sym)
|
125
125
|
end
|
126
|
-
@table[sym] = function_bubbler(@table[sym])
|
127
126
|
# Always reset parent in case this is a clone
|
128
127
|
if(@table[sym].is_a?(::AttributeStruct))
|
129
|
-
@table[sym]._parent
|
128
|
+
if(@table[sym]._parent.nil?)
|
129
|
+
@table[sym] = @table[sym]._clone
|
130
|
+
else
|
131
|
+
@table[sym]._parent(self)
|
132
|
+
end
|
130
133
|
end
|
134
|
+
@table[sym] = function_bubbler(@table[sym])
|
131
135
|
@table[sym]
|
132
136
|
end
|
133
137
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparkle_formation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: attribute_struct
|