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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d08ad7a94302cc092928716d3d4bedac7c16ea6b
4
- data.tar.gz: d902908466c32063b8e0d455342797e5dc3a9385
3
+ metadata.gz: 8ec78e5e2b024d70a58ffcffe96f81b84cae003e
4
+ data.tar.gz: 24a6639f78ae814c9200ffbf3620fae5683f2750
5
5
  SHA512:
6
- metadata.gz: 2a04a991358aea6328f0a84af52dbd29490c509067b2303da66086db93c553870e17c8623b38c11b05ad082f49f7c1e2e74d29015edea4d11d4e854725edb535
7
- data.tar.gz: 5df589bb87eb5bbd2beb81061e89f29616b61ff7fd4c5ad48bb4cd85624152f24bd13b5c7e23c7f1a61749c15bc5f50d5d2b74a0b4b8c208345c6ce85ae8e3dc
6
+ metadata.gz: dc491c71f170cebbc14e2242c908c2c391594dcd1ccacb3b52fea8bdb61dd096d3a9897d143313ebc64f00b546214fe1dc1574cb720fbffb05c0e26ba638fb35
7
+ data.tar.gz: fb1f784f49f493d1be603b6727b893da8db63b8aa2a11030af570c476019cd449d87c7f81328cb7ba5439e97e461279ae92d7845b3e867aa2d0058848ad2da3d
@@ -71,21 +71,35 @@ module Aws
71
71
  end
72
72
 
73
73
  def hash_refs(line,scope)
74
- match = line.match %r/^(.*?)(\{\s*:\S+\s*=>.*?\}|\{\s*\S+:\s*.*?\})(.*)$/
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 = #{match[2]}", binding
96
+ eval "h = #{code}", binding
78
97
  k = h.keys[0]
79
98
  v = h.delete(k)
80
- v = if v.is_a?Array
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
- [match[1], h, hash_refs(match[3],scope) ]
102
+ [left, h, tail.size > 0 ? hash_refs(tail,scope) : tail ]
89
103
  else
90
104
  "#{line}\n"
91
105
  end
@@ -1,7 +1,7 @@
1
1
  module Aws
2
2
  module Cfn
3
3
  module Dsl
4
- VERSION = '0.8.3'
4
+ VERSION = '0.8.4'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-cfn-dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christo DeLange