rubycfn 0.3.3 → 0.3.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: 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