rubycfn 0.0.11 → 0.1.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: f9e47d445395bf84c4aa9620a0fb0bf19f34be1a
4
- data.tar.gz: 6ab6559f1197f4dda9f8a31e67204c403c9d8bfb
3
+ metadata.gz: 29062bf33bd5efb1396cbeceb1377db608577eaf
4
+ data.tar.gz: ce1c38eb6a9160a03ecc284fa17e6b80f2cdef8c
5
5
  SHA512:
6
- metadata.gz: ba78c25af71883e14644fb464db2b62399e6b38bd07ec6679bae50c6d625bdfc6f3533f5dbc8ca23600e3664c86d68184c0d3c85c4239e8e9d6cb3035f6b7a82
7
- data.tar.gz: 87e8d9c1df4feec6c06964e5b4745f4635835a737a6d9ce163839213129307eca874a1058d3e74b2f393e174cf79179f6f8903b21436d100929aa7037eea6201
6
+ metadata.gz: bcc956f265c0d06d16d1b2b53e06273c9abec57005ee83a2c50b13ce0016e4ee83a44452b49b3e7dc46f5b0081d5c365547d624f53efc01ebe8773cfdb93e5df
7
+ data.tar.gz: c7edb919f6eebee33003ea1ad8aa780e9d52e83708c7421828148fa20eb523d1855cc4f6317526e3257afc3542fb8136f984fcf36470ddb4a0101ac4dbe633e1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubycfn (0.0.11)
4
+ rubycfn (0.1.0)
5
5
  activesupport (~> 5.1.5)
6
6
  json (~> 2.1.0)
7
7
  neatjson (~> 0.8.4)
data/README.md CHANGED
@@ -12,7 +12,7 @@ or, create a Gemfile with this content:
12
12
  ```
13
13
  source "https://rubygems.org"
14
14
 
15
- gem "rubycfn", "~> 0.0.11"
15
+ gem "rubycfn", "~> 0.1.0"
16
16
 
17
17
  ```
18
18
 
@@ -1,4 +1,4 @@
1
1
  # Rubycfn version
2
2
  module Rubycfn
3
- VERSION = "0.0.11"
3
+ VERSION = "0.1.0"
4
4
  end
data/lib/rubycfn.rb CHANGED
@@ -182,6 +182,13 @@ module Rubycfn
182
182
  TOPLEVEL_BINDING.eval("@depends_on = #{resources}")
183
183
  end
184
184
 
185
+ def self.set(name, index = 0, &block)
186
+ res = {
187
+ "#{name}": yield
188
+ }
189
+ TOPLEVEL_BINDING.eval("@variables = @variables.deep_merge(#{res})")
190
+ end
191
+
185
192
  def self.property(name, index = 0, &block)
186
193
  name = TOPLEVEL_BINDING.eval("'#{name}'.cfnize")
187
194
  res = { "#{name}": yield(block) }
@@ -192,15 +199,20 @@ module Rubycfn
192
199
  arguments[:amount] ||= 1
193
200
  name = name.to_s.cfnize
194
201
  arguments[:amount].times do |i|
195
- yield self, i if block_given?
196
- res = {
197
- "#{name.to_s}#{i == 0 ? "" : i+1}": {
198
- DependsOn: TOPLEVEL_BINDING.eval("@depends_on"),
199
- Properties: TOPLEVEL_BINDING.eval("@properties"),
200
- Type: arguments[:type]
202
+ resource_suffix = i == 0 ? "" : "#{i+1}"
203
+ if arguments[:type].class == Module
204
+ send("include", arguments[:type][name, resource_suffix, &block])
205
+ else
206
+ yield self, i if block_given?
207
+ res = {
208
+ "#{name.to_s}#{i == 0 ? "" : i+1}": {
209
+ DependsOn: TOPLEVEL_BINDING.eval("@depends_on"),
210
+ Properties: TOPLEVEL_BINDING.eval("@properties"),
211
+ Type: arguments[:type]
212
+ }
201
213
  }
202
- }
203
- TOPLEVEL_BINDING.eval("@resources = @resources.deep_merge(#{res})")
214
+ TOPLEVEL_BINDING.eval("@resources = @resources.deep_merge(#{res})")
215
+ end
204
216
  end
205
217
  TOPLEVEL_BINDING.eval("@depends_on = []")
206
218
  TOPLEVEL_BINDING.eval("@properties = {}")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycfn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Vink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-17 00:00:00.000000000 Z
11
+ date: 2018-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: neatjson