autostacker24 1.0.65 → 1.0.66

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: f78ce00725c3695bc13c217beac910633463697f
4
- data.tar.gz: 95190dc5830837697b5c59a33831c4aebece4a09
3
+ metadata.gz: 3d6747b5745a81e573c4b64039bf0c291605510f
4
+ data.tar.gz: c9359f7c97474cb3956f3f1c819b74523b29856e
5
5
  SHA512:
6
- metadata.gz: a86b310dfce088dbad8477229728b93d69b2078a80e425d01ec67d9cf47deb6ca585239ab3b3fec88a3f8ec951a0eb7c27491132dcc343dcb23ef80ccf0a2004
7
- data.tar.gz: ef8b88ec970ff1b20c55eb5b3b023b2173602701e0f53eca007b350ad17fd1f8fcaba869a2e269c8d31840a6459d355ea919733f40a078ee31cf9e2c7eae907c
6
+ metadata.gz: 6bb8f3554b3376e5ba41e4eb37a354ad896541dd4d914db347d0239e2e08896fe3270d7177f1879aa7c4224695628afd82bf52885a136cae1451b92d277ae1b1
7
+ data.tar.gz: 474d7bf2809aa6bf37174607afaa6deb1c8c3d31673928e559ce54c57fdac4d42ce03cab1cee112d700b8e727948974355b101330fb9211a818538c488a63443
@@ -49,7 +49,8 @@ module AutoStacker24
49
49
  parts = tokenize(s).map do |token|
50
50
  case token
51
51
  when '@@' then '@'
52
- when /^@/ then {'Ref' => token[1..-1]}
52
+ when '@[' then '['
53
+ when /^@/ then parse_ref(token)
53
54
  else token
54
55
  end
55
56
  end
@@ -71,8 +72,28 @@ module AutoStacker24
71
72
  end
72
73
  end
73
74
 
75
+ def self.parse_ref(token)
76
+ m = /^@([^\[]*)(\[([^,]*)(\s*,\s*(.*))?\])?$/.match(token)
77
+ m1 = m[1]
78
+ m2 = m[3]
79
+ m3 = m[5]
80
+ if m2
81
+ args = if m3
82
+ [m1, m2, m3]
83
+ else
84
+ [m1 + 'Map', '@' + m1, m2]
85
+ end
86
+ {'Fn::FindInMap' => [args[0], preprocess_string(args[1]), preprocess_string(args[2])]}
87
+ else
88
+ {'Ref' => m1}
89
+ end
90
+ end
91
+
74
92
  def self.tokenize(s)
75
- pattern = /@@|@((\w+(::)?\w+)+)/
93
+ # for recursive bracket matching see
94
+ # http://stackoverflow.com/questions/19486686/recursive-nested-matching-pairs-of-curly-braces-in-ruby-regex
95
+ # but for we limit ourself to one level to make things less complex
96
+ pattern = /@@|@\[|@(\w+(::\w+)?)(\[[^\]]*\])?/
76
97
  tokens = []
77
98
  loop do
78
99
  m = pattern.match(s)
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: 1.0.65
4
+ version: 1.0.66
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-03-07 00:00:00.000000000 Z
12
+ date: 2016-03-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-core