rubycfn 0.0.11 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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