humidifier 1.8.0 → 1.9.1.1
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 +4 -4
- data/CloudFormationResourceSpecification.json +2324 -2025
- data/lib/humidifier/aws_adapters/base.rb +4 -2
- data/lib/humidifier/aws_adapters/noop.rb +2 -1
- data/lib/humidifier/aws_adapters/sdkv1.rb +17 -5
- data/lib/humidifier/aws_adapters/sdkv2.rb +16 -4
- data/lib/humidifier/aws_shim.rb +2 -2
- data/lib/humidifier/condition.rb +2 -2
- data/lib/humidifier/configuration.rb +6 -4
- data/lib/humidifier/fn.rb +7 -5
- data/lib/humidifier/loader.rb +11 -5
- data/lib/humidifier/mapping.rb +2 -2
- data/lib/humidifier/parameter.rb +10 -5
- data/lib/humidifier/props/base.rb +4 -2
- data/lib/humidifier/props/boolean_prop.rb +2 -1
- data/lib/humidifier/props/list_prop.rb +12 -3
- data/lib/humidifier/props/map_prop.rb +14 -3
- data/lib/humidifier/props/structure_prop.rb +33 -10
- data/lib/humidifier/props.rb +2 -1
- data/lib/humidifier/ref.rb +2 -2
- data/lib/humidifier/resource.rb +26 -7
- data/lib/humidifier/sdk_payload.rb +21 -16
- data/lib/humidifier/sleeper.rb +3 -3
- data/lib/humidifier/stack.rb +25 -12
- data/lib/humidifier/version.rb +1 -1
- data/lib/humidifier.rb +3 -3
- metadata +4 -4
data/lib/humidifier/stack.rb
CHANGED
@@ -2,20 +2,28 @@ module Humidifier
|
|
2
2
|
# Represents a CFN stack
|
3
3
|
class Stack
|
4
4
|
# Single settings on the stack
|
5
|
-
STATIC_RESOURCES
|
5
|
+
STATIC_RESOURCES =
|
6
|
+
Utils.underscored(%w[AWSTemplateFormatVersion Description Metadata])
|
6
7
|
|
7
8
|
# Lists of objects linked to the stack
|
8
|
-
ENUMERABLE_RESOURCES =
|
9
|
+
ENUMERABLE_RESOURCES =
|
10
|
+
Utils.underscored(%w[Conditions Mappings Outputs Parameters Resources])
|
9
11
|
|
10
|
-
attr_accessor :id
|
12
|
+
attr_accessor :id
|
13
|
+
attr_reader(:name, *ENUMERABLE_RESOURCES.values, *STATIC_RESOURCES.values)
|
11
14
|
|
12
15
|
def initialize(opts = {})
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
@name = opts[:name]
|
17
|
+
@id = opts[:id]
|
18
|
+
@default_identifier = self.class.next_default_identifier
|
16
19
|
|
17
|
-
ENUMERABLE_RESOURCES.each_value
|
18
|
-
|
20
|
+
ENUMERABLE_RESOURCES.each_value do |property|
|
21
|
+
instance_variable_set(:"@#{property}", opts.fetch(property, {}))
|
22
|
+
end
|
23
|
+
|
24
|
+
STATIC_RESOURCES.each_value do |property|
|
25
|
+
instance_variable_set(:"@#{property}", opts[property])
|
26
|
+
end
|
19
27
|
end
|
20
28
|
|
21
29
|
# Add a resource to the stack and optionally set its attributes
|
@@ -25,7 +33,8 @@ module Humidifier
|
|
25
33
|
resource
|
26
34
|
end
|
27
35
|
|
28
|
-
# The identifier used by the shim to find the stack in CFN, prefers id to
|
36
|
+
# The identifier used by the shim to find the stack in CFN, prefers id to
|
37
|
+
# name
|
29
38
|
def identifier
|
30
39
|
id || name || default_identifier
|
31
40
|
end
|
@@ -42,12 +51,15 @@ module Humidifier
|
|
42
51
|
|
43
52
|
%i[condition mapping output parameter].each do |resource_type|
|
44
53
|
define_method(:"add_#{resource_type}") do |name, opts = {}|
|
45
|
-
send(:"#{resource_type}s")[name] =
|
54
|
+
send(:"#{resource_type}s")[name] =
|
55
|
+
Humidifier.const_get(resource_type.capitalize).new(opts)
|
46
56
|
end
|
47
57
|
end
|
48
58
|
|
49
59
|
AwsShim::STACK_METHODS.each do |method|
|
50
|
-
define_method(method)
|
60
|
+
define_method(method) do |opts = {}|
|
61
|
+
AwsShim.send(method, SdkPayload.new(self, opts))
|
62
|
+
end
|
51
63
|
end
|
52
64
|
|
53
65
|
# Increment the default identifier
|
@@ -59,12 +71,13 @@ module Humidifier
|
|
59
71
|
|
60
72
|
private
|
61
73
|
|
62
|
-
|
74
|
+
attr_reader :default_identifier
|
63
75
|
|
64
76
|
def enumerable_resources
|
65
77
|
ENUMERABLE_RESOURCES.each_with_object({}) do |(name, prop), list|
|
66
78
|
resources = send(prop)
|
67
79
|
next if resources.empty?
|
80
|
+
|
68
81
|
list[name] =
|
69
82
|
resources.map do |resource_name, resource|
|
70
83
|
[resource_name, resource.to_cf]
|
data/lib/humidifier/version.rb
CHANGED
data/lib/humidifier.rb
CHANGED
@@ -9,9 +9,9 @@ require 'humidifier/ref'
|
|
9
9
|
require 'humidifier/props'
|
10
10
|
|
11
11
|
require 'humidifier/props/base'
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
prop_types = %w[boolean double integer json list map string structure timestamp]
|
14
|
+
prop_types.each { |type| require "humidifier/props/#{type}_prop" }
|
15
15
|
|
16
16
|
require 'humidifier/aws_shim'
|
17
17
|
require 'humidifier/condition'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: humidifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Localytics
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10
|
11
|
+
date: 2017-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.16'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.16'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|