stack_master 0.10.2 → 0.11.0
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 +4 -4
- data/README.md +13 -0
- data/lib/stack_master/parameter_resolver.rb +7 -1
- data/lib/stack_master/version.rb +1 -1
- data/spec/stack_master/parameter_resolver_spec.rb +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dfd66f0ae759e197674b37f60c86753379a27b3d
|
|
4
|
+
data.tar.gz: 6ef5f772326ac2128d0d21667b1aa88cc4f066af
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fd853147d8aa925242872f9fcc24fa3e79572c6b23a3009a721303126afb0a34b411d18d41b90d2377371155bc61a93557b0367a29d1537a1a7bb30d2f905590
|
|
7
|
+
data.tar.gz: 39f780912d2be5c8176b2ae36d185fcd2736ebb3f3448ea89d1629299e2cfc7a9141dd8d4f78e6d45be1b0874c8bf1c53c43b223b34975fd354c73eddeac7cf5
|
data/README.md
CHANGED
|
@@ -329,6 +329,19 @@ my_parameter:
|
|
|
329
329
|
- value2
|
|
330
330
|
```
|
|
331
331
|
|
|
332
|
+
Array parameter values can include nested parameter resolvers.
|
|
333
|
+
|
|
334
|
+
For example, given the following parameter definition:
|
|
335
|
+
```
|
|
336
|
+
my_parameter:
|
|
337
|
+
- stack_output: my-stack/output # value resolves to 'value1'
|
|
338
|
+
- value2
|
|
339
|
+
```
|
|
340
|
+
The parameter value will resolve to:
|
|
341
|
+
```
|
|
342
|
+
my_parameter: 'value1,value2'
|
|
343
|
+
```
|
|
344
|
+
|
|
332
345
|
## ERB Template Files in SparkleFormation templates
|
|
333
346
|
|
|
334
347
|
An extension to SparkleFormation is the `user_data_file!` method, which evaluates templates in `templates/user_data/[file_name]`. Most of the usual SparkleFormation methods are available in user data templates. Example:
|
|
@@ -47,7 +47,7 @@ module StackMaster
|
|
|
47
47
|
|
|
48
48
|
def resolve_parameter_value(key, parameter_value)
|
|
49
49
|
return parameter_value.to_s if Numeric === parameter_value || parameter_value == true || parameter_value == false
|
|
50
|
-
return parameter_value.join(',') if Array === parameter_value
|
|
50
|
+
return resolve_array_parameter_values(key, parameter_value).join(',') if Array === parameter_value
|
|
51
51
|
return parameter_value unless Hash === parameter_value
|
|
52
52
|
validate_parameter_value!(key, parameter_value)
|
|
53
53
|
|
|
@@ -61,6 +61,12 @@ module StackMaster
|
|
|
61
61
|
raise InvalidParameter, $!.message
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
+
def resolve_array_parameter_values(key, parameter_values)
|
|
65
|
+
parameter_values.reduce([]) do |values, parameter_value|
|
|
66
|
+
values << resolve_parameter_value(key, parameter_value)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
64
70
|
def call_resolver(class_name, value)
|
|
65
71
|
resolver_class(class_name).resolve(value)
|
|
66
72
|
end
|
data/lib/stack_master/version.rb
CHANGED
|
@@ -66,6 +66,16 @@ RSpec.describe StackMaster::ParameterResolver do
|
|
|
66
66
|
}.to_not raise_error
|
|
67
67
|
end
|
|
68
68
|
|
|
69
|
+
context 'when array values contain resolver hashes' do
|
|
70
|
+
it 'returns the comma separated string values returned by the resolvers' do
|
|
71
|
+
expect(resolve(param: [1, { my_resolver: 2 }])).to eq(param: '1,10')
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it 'returns nested array values' do
|
|
75
|
+
expect(resolve(param: [[1, { my_resolver: 3 }], { my_resolver: 2 }])).to eq(param: '1,15,10')
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
69
79
|
context 'when given a proper resolve hash' do
|
|
70
80
|
it 'returns the value returned by the resolver as the parameter value' do
|
|
71
81
|
expect(resolve(param: { my_resolver: 2 })).to eq(param: 10)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stack_master
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Steve Hodgkiss
|
|
@@ -450,7 +450,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
450
450
|
version: '0'
|
|
451
451
|
requirements: []
|
|
452
452
|
rubyforge_project:
|
|
453
|
-
rubygems_version: 2.
|
|
453
|
+
rubygems_version: 2.5.1
|
|
454
454
|
signing_key:
|
|
455
455
|
specification_version: 4
|
|
456
456
|
summary: StackMaster is a sure-footed way of creating, updating and keeping track
|