autostacker24 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ec9a48ce2bb2e6ea4a03027cf0f5f4973d67500
4
- data.tar.gz: 61a14e0d0d07d43d88b3669ae69d61a958cdde72
3
+ metadata.gz: b40c75af3b46bd97e4a98ccfd51d967e974cf094
4
+ data.tar.gz: d0e77352fac3529d7eb83f8703b4b52e2d7051bd
5
5
  SHA512:
6
- metadata.gz: 34518e1f5915aea0b1426ea181d70a6520a01af53b4b01d9e79c9acdaa5124964b3a7a2dc44125f0178c6177d25eaaea40ab67fd00e42a4972b34e1abeacc897
7
- data.tar.gz: 7bbc65856385bafc31369a1243fc2928ce28629d65351d199648f34438cfbf3b41b7ba33c00a0d7b46b5f37a9cd3b831c1eaa9d6e09b05353a4e2ef30e6b4be2
6
+ metadata.gz: 165a99326d1e8b764845a4d33f7d84f9c9823682adcca19aee7f1e47b4bb009d44d0677a709c5f1f450f6d9d819698ce06721a8a81b0b561465c0b251a048b4a
7
+ data.tar.gz: d5355356201f33f8e7b076aa71dd55078b0bc0ca8691907b69e2de3bf2529c671d955e98dd39fb13a9cb62979360a6b93c530e08ad4432ed5efb987b6c446140
@@ -26,7 +26,32 @@ module AutoStacker24
26
26
  end
27
27
 
28
28
  def self.parse_yaml(template)
29
- YAML.load(template)
29
+ transform_tags_to_functions(YAML.parse(template)).to_ruby
30
+ end
31
+
32
+ def self.transform_tags_to_functions(node)
33
+ children = node.children
34
+ children.each_index{|i| children[i] = transform_tags_to_functions(children[i])} if children
35
+ node = make_function_node(node) if node.tag
36
+ node
37
+ end
38
+
39
+ def self.make_function_node(node)
40
+ transformed = Psych::Nodes::Mapping.new()
41
+ fn = node.tag[1..-1]
42
+ fn = "Fn::#{fn}" unless fn == 'Ref' # Exception 1: Ref must not be prefixed with Fn::
43
+ node.tag = nil
44
+ transformed.children << Psych::Nodes::Scalar.new(fn)
45
+ unless fn == 'Fn::GetAtt' # Ecxeption 2: GetAtt has different arguments in short form
46
+ args = node
47
+ else
48
+ resource, attribute = node.value.split('.')
49
+ args = Psych::Nodes::Sequence.new(fn)
50
+ args.children << Psych::Nodes::Scalar.new(resource)
51
+ args.children << Psych::Nodes::Scalar.new(attribute)
52
+ end
53
+ transformed.children << args
54
+ transformed
30
55
  end
31
56
 
32
57
  def self.preprocess_json(json)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autostacker24
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johannes Mueller
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-09-26 00:00:00.000000000 Z
12
+ date: 2016-10-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-core