rubycfn 0.3.3 → 0.3.4

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: f3e0e86dd1547d4101efb979eec8e2d7fc86317c
4
- data.tar.gz: 7eeb0659142403b03a6595684ea82dd075bd649f
3
+ metadata.gz: aaba2e882464398d08b5d6a9f991e03afba133d9
4
+ data.tar.gz: 1c5d1b718e958a74ea37d2e40a3dc60dcb565632
5
5
  SHA512:
6
- metadata.gz: 4247d0ba01aea95e143db51a2cbe6468c74be2107e558a0659de5c9528785b93caf48d0584299f430eace4bc048796905f727923c010bc4ea6788eb7758f533c
7
- data.tar.gz: 3ee4eb5457c89813e811a63c502d8628ff76bd1b905329d44e1a3a27b177fbf0d03191d80589dabaf7fb12b56b55f4db89b3516097f76ab26e5e124a57ecaf35
6
+ metadata.gz: 3e01596a8194541a3ded9a0e1c4bcfaba8dda35e45c7365b0d1cbe4c3e4b59e05a4cb4395b48d5c140f1ea7237d8c0aa32111307f830d8980ac08ff8c0388a20
7
+ data.tar.gz: 0750055ffc5b34b1b81f11ac575bf2fc432f15159a15e882c8719bd1269a03800ba143cc045b7da8a78e8522ec88d3676e3021785fcb158a1ef21fa8ec6860d7
data/CHANGELOG.md CHANGED
@@ -2,7 +2,11 @@
2
2
  All notable changes to Rubycfn will be documented in this file.
3
3
  This project uses [Semantic Versioning](http://semver.org/).
4
4
 
5
- ## 0.3.4 (Next Release)
5
+ ## 0.3.5 (Next Release)
6
+
7
+ ## 0.3.4
8
+
9
+ * Added r.meta method to create resource Metadata -- [@dennisvink][@dennisvink]
6
10
 
7
11
  ## 0.3.3
8
12
 
@@ -1,4 +1,4 @@
1
1
  # Rubycfn version
2
2
  module Rubycfn
3
- VERSION = "0.3.3"
3
+ VERSION = "0.3.4"
4
4
  end
data/lib/rubycfn.rb CHANGED
@@ -11,6 +11,7 @@ require "rubycfn/version"
11
11
  @outputs = {}
12
12
  @parameters = {}
13
13
  @properties = {}
14
+ @metadata = {}
14
15
  @mappings = {}
15
16
  @conditions = {}
16
17
  @AWSresources = {}
@@ -299,6 +300,16 @@ module Rubycfn
299
300
  TOPLEVEL_BINDING.eval("@variables = @variables.deep_merge(#{res})")
300
301
  end
301
302
 
303
+ def self.meta(name, index = 0, &block)
304
+ if name.class == Symbol
305
+ name = TOPLEVEL_BINDING.eval("'#{name}'.cfnize")
306
+ else
307
+ name = TOPLEVEL_BINDING.eval("'#{name}'")
308
+ end
309
+ res = { "#{name}": yield(block) }
310
+ TOPLEVEL_BINDING.eval("@metadata = @metadata.deep_merge(#{res})")
311
+ end
312
+
302
313
  def self.property(name, index = 0, &block)
303
314
  if name.class == Symbol
304
315
  name = TOPLEVEL_BINDING.eval("'#{name}'.cfnize")
@@ -341,6 +352,7 @@ module Rubycfn
341
352
  res = {
342
353
  "#{name.to_s}#{i == 0 ? "" : resource_postpend}": {
343
354
  DependsOn: TOPLEVEL_BINDING.eval("@depends_on"),
355
+ Metadata: TOPLEVEL_BINDING.eval("@metadata"),
344
356
  Properties: TOPLEVEL_BINDING.eval("@properties"),
345
357
  Type: arguments[:type],
346
358
  Condition: arguments[:condition]
@@ -350,6 +362,7 @@ module Rubycfn
350
362
  end
351
363
  TOPLEVEL_BINDING.eval("@depends_on = []")
352
364
  TOPLEVEL_BINDING.eval("@properties = {}")
365
+ TOPLEVEL_BINDING.eval("@metadata = {}")
353
366
  end
354
367
  end
355
368
 
@@ -371,7 +384,7 @@ module Rubycfn
371
384
  skeleton.merge!(Conditions: sort_json(TOPLEVEL_BINDING.eval("@conditions")))
372
385
  skeleton.merge!(Resources: sort_json(TOPLEVEL_BINDING.eval("@AWSresources")))
373
386
  skeleton.merge!(Outputs: sort_json(TOPLEVEL_BINDING.eval("@outputs")))
374
- TOPLEVEL_BINDING.eval("@variables = @AWSresources = @outputs = @properties = @mappings = @parameters = {}")
387
+ TOPLEVEL_BINDING.eval("@variables = @AWSresources = @outputs = @metadata = @properties = @mappings = @parameters = {}")
375
388
  TOPLEVEL_BINDING.eval("@depends_on = []")
376
389
  TOPLEVEL_BINDING.eval("@description = ''")
377
390
  TOPLEVEL_BINDING.eval("@transform = ''")
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.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Vink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-08 00:00:00.000000000 Z
11
+ date: 2019-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: neatjson
@@ -324,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
324
324
  version: '0'
325
325
  requirements: []
326
326
  rubyforge_project:
327
- rubygems_version: 2.6.7
327
+ rubygems_version: 2.5.1
328
328
  signing_key:
329
329
  specification_version: 4
330
330
  summary: Rubycfn