lono 6.1.7 → 6.1.8

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
  SHA256:
3
- metadata.gz: 87f4d3a51484e76af1308434e1d244f95aa327d12db1211243e20064e2e9fa09
4
- data.tar.gz: 7f90e0346d71229a09de3af0283d1bfa14799bf1946a6d6bc5f0a3bbe8661438
3
+ metadata.gz: b44dae2e1a33765ce3e3d969e0f2ca6ad0230f027b1ff94863b27bb3077b4e26
4
+ data.tar.gz: 280c9073d25b90b02afe7e44aa22514fb21ad8affd3ed3272c4315edd6f2acd6
5
5
  SHA512:
6
- metadata.gz: aa404e26de9101dba2de7e8412a3865624d64ffd479d9ba9d6c48826e6c0afdbc7e77f5f4dcca1c2c1f129814f5570ad80dac3fb9c43eca704d0ff9d563bd666
7
- data.tar.gz: a062d07213d4eb375ed9f0501e7db3ffbd93e386a03582b1ab3f75132e0bf7703046e609545831155aa495f3a387b1c4e099af8162cdc75bcf72f37a011ba311
6
+ metadata.gz: 7ed15e4146cfb29b71e6399f1f7424ec6533bbe0def6886b931e2bf506a1913bdb8bf518a599e100679638de1a603942a814aa1e3b7268b29d49fb1664a1b614
7
+ data.tar.gz: 45dfae54e67bdd6b51ac6ad2943b86126c4e1f4d8ac6fe6c1f24d923e9e67d12e514bbcf6f3cc636e08ca0f0a7a352df84dc0c981345bb551dd6e145c70d838f
data/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
5
5
 
6
+ ## [6.1.8]
7
+ - #28 add user_data_script helper
8
+ - #29 remove items in Hash structure with nil value at any level
9
+
6
10
  ## [6.1.7]
7
11
  - #25 add stack_name helper
8
12
  - #26 ref Split: true option
@@ -13,11 +13,12 @@ class Lono::Template::Dsl::Builder
13
13
  blueprint_meta = Lono::Blueprint::Meta.new(@blueprint)
14
14
  target_section = self.class.to_s.split('::').last.underscore
15
15
  # target_section: Lono::Template::Dsl::Builder::Parameter => parameter
16
- if blueprint_meta.auto_camelize?(target_section)
17
- CfnCamelizer.transform(attributes)
18
- else
19
- stringify_keys!(attributes)
20
- end
16
+ data = if blueprint_meta.auto_camelize?(target_section)
17
+ CfnCamelizer.transform(attributes)
18
+ else
19
+ stringify_keys!(attributes)
20
+ end
21
+ clean(data)
21
22
  end
22
23
 
23
24
  # Accounts for Arrays also. ActiveSupport only works for Hashes.
@@ -31,5 +32,10 @@ class Lono::Template::Dsl::Builder
31
32
  data # do not transform
32
33
  end
33
34
  end
35
+
36
+ # Remove items with nil value automatically
37
+ def clean(data)
38
+ HashSqueezer.new(data).squeeze
39
+ end
34
40
  end
35
41
  end
@@ -0,0 +1,20 @@
1
+ # Based on https://stackoverflow.com/questions/32174183/remove-nil-values-from-hash
2
+ class Lono::Template::Dsl::Builder
3
+ class HashSqueezer
4
+ def initialize(data)
5
+ @data = data
6
+ end
7
+
8
+ def squeeze(new_data=nil)
9
+ data = new_data || @data
10
+ data.each_with_object({}) do |(k, v), squeezed|
11
+ if v.is_a?(Hash)
12
+ squeezed[k] = squeeze(v)
13
+ else
14
+ squeezed[k] = v unless v.nil?
15
+ end
16
+ squeezed
17
+ end
18
+ end
19
+ end
20
+ end
@@ -59,6 +59,18 @@ module Lono::Template::Dsl::Builder::Helpers
59
59
  render_file(Lono.config.user_data_path, path)
60
60
  end
61
61
 
62
+ def user_data_script
63
+ return "# @user_data variable not set" unless @user_data
64
+
65
+ if File.exist?(@user_data)
66
+ IO.read(@user_data)
67
+ else
68
+ message = "WARN: #{@user_data} not found"
69
+ puts message.color(:yellow)
70
+ "# #{message}"
71
+ end
72
+ end
73
+
62
74
  def render_file(folder, path)
63
75
  path = "#{folder}/#{path}"
64
76
  if File.exist?(path)
@@ -5,7 +5,7 @@
5
5
  class Lono::Template::Dsl::Builder
6
6
  class Resource < Base
7
7
  def template
8
- camelize(clean(standarize(@definition)))
8
+ camelize(standarize(@definition))
9
9
  end
10
10
 
11
11
  # Type is the only required property: https://amzn.to/2x8W5aD
@@ -40,19 +40,5 @@ class Lono::Template::Dsl::Builder
40
40
  raise "Invalid form provided. definition #{definition.inspect}"
41
41
  end
42
42
  end
43
-
44
- # Remove properties with nil value automatically
45
- def clean(resource)
46
- logical_id = resource.keys.first
47
- attributes = resource[logical_id]
48
- properties = attributes["Properties"]
49
-
50
- if properties
51
- properties.delete_if { |k,v| v.nil? }
52
- resource[logical_id]["Properties"] = properties
53
- end
54
-
55
- resource
56
- end
57
43
  end
58
44
  end
data/lib/lono/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lono
2
- VERSION = "6.1.7"
2
+ VERSION = "6.1.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lono
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.7
4
+ version: 6.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
@@ -555,6 +555,7 @@ files:
555
555
  - lib/lono/template/dsl/builder/base.rb
556
556
  - lib/lono/template/dsl/builder/condition.rb
557
557
  - lib/lono/template/dsl/builder/fn.rb
558
+ - lib/lono/template/dsl/builder/hash_squeezer.rb
558
559
  - lib/lono/template/dsl/builder/helpers.rb
559
560
  - lib/lono/template/dsl/builder/helpers/core_helper.rb
560
561
  - lib/lono/template/dsl/builder/helpers/param_helper.rb