aws-cfn-dsl 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/aws/cfn/dsl/template.rb +23 -9
- data/lib/aws/cfn/dsl/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ec78e5e2b024d70a58ffcffe96f81b84cae003e
|
4
|
+
data.tar.gz: 24a6639f78ae814c9200ffbf3620fae5683f2750
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc491c71f170cebbc14e2242c908c2c391594dcd1ccacb3b52fea8bdb61dd096d3a9897d143313ebc64f00b546214fe1dc1574cb720fbffb05c0e26ba638fb35
|
7
|
+
data.tar.gz: fb1f784f49f493d1be603b6727b893da8db63b8aa2a11030af570c476019cd449d87c7f81328cb7ba5439e97e461279ae92d7845b3e867aa2d0058848ad2da3d
|
data/lib/aws/cfn/dsl/template.rb
CHANGED
@@ -71,21 +71,35 @@ module Aws
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def hash_refs(line,scope)
|
74
|
-
|
74
|
+
block_regex = %r/\{\s*:\S+\s*=>.*?\}|\{\s*\S+:\s*.*?\}/
|
75
|
+
match = line.match %r/^(.*?)(#{block_regex})(.*)$/
|
75
76
|
if match
|
77
|
+
left = match[1]
|
78
|
+
code = match[2]
|
79
|
+
tail = match[3]
|
80
|
+
while true
|
81
|
+
braces = code.gsub(%r/[^{}]+/, '')
|
82
|
+
len = braces.size
|
83
|
+
if len % 2 != 0
|
84
|
+
nest = tail.match %r/^(.*\})(.*)$/
|
85
|
+
if nest
|
86
|
+
code += nest[1]
|
87
|
+
tail = nest[2]
|
88
|
+
else
|
89
|
+
abort! "Mismatched {}'s"
|
90
|
+
end
|
91
|
+
else
|
92
|
+
break
|
93
|
+
end
|
94
|
+
end
|
76
95
|
h = nil
|
77
|
-
eval "h = #{
|
96
|
+
eval "h = #{code}", binding
|
78
97
|
k = h.keys[0]
|
79
98
|
v = h.delete(k)
|
80
|
-
v =
|
81
|
-
v.map{|e| e.to_s }
|
82
|
-
else
|
83
|
-
v.to_s
|
84
|
-
end
|
85
|
-
|
99
|
+
v = scope[:compiler].sym_to_s(v)
|
86
100
|
h[k.to_s] = v
|
87
101
|
scope[:logger].debug h
|
88
|
-
[
|
102
|
+
[left, h, tail.size > 0 ? hash_refs(tail,scope) : tail ]
|
89
103
|
else
|
90
104
|
"#{line}\n"
|
91
105
|
end
|
data/lib/aws/cfn/dsl/version.rb
CHANGED