cfn2dsl 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 663a42c142867cf8c6b7722f3a471de591bc8e6e
4
- data.tar.gz: c77b118e31378ef6c72625a71671b1dfe7aa1599
3
+ metadata.gz: d41f4227841cd556701c4bdeb8b203b32a2889a9
4
+ data.tar.gz: acf409e0bb4abf9bc6d58bf0223f4d6c83c581e5
5
5
  SHA512:
6
- metadata.gz: ef77b8fea7ef6ae8aff5cb95ba956973130ee4153b4685125d40ebb768e6b7650117f2849317a6fe653abc3d3877bb1224a6b6a142497398d79342419d370ea9
7
- data.tar.gz: 1e1ed9ce31a60c7b14c48688fb4c6fce781b8a97faa710bde178cfc01c3dda23c270821996f44018807096eb914d65d9150b39843be4ebd9b638caafbee89030
6
+ metadata.gz: 7181c56d9605bf9a15abf5e767f06d476dba22755acec7f7ff446bf6d85cbdd5fa17d403419a97975b41950571db7b13a6e89adf8580ef460cf6b2f916c17f29
7
+ data.tar.gz: 2057466527c91674128aa24175b4f56b302794a793268339d4499c0c0f07dba101bd72cf2b9bdd1a7f10a7dfe1a8b9ffecf3794f4e38a793afc6f46071c265be
@@ -14,6 +14,8 @@ require 'parameter'
14
14
  require 'resource'
15
15
  require 'render'
16
16
  require 'version'
17
+ require 'rules'
18
+ require 'metadata'
17
19
 
18
20
  AwesomePrint.defaults = {
19
21
  :indent => -2,
@@ -7,6 +7,8 @@ class CloudFormation
7
7
  :conditions,
8
8
  :outputs,
9
9
  :mappings,
10
+ :rules,
11
+ :metadata,
10
12
  :description,
11
13
  :aws_template_format_version
12
14
  ]
@@ -51,6 +53,10 @@ class CloudFormation
51
53
  def complex_parser(name, json)
52
54
  elms = []
53
55
  case name
56
+ when :metadata
57
+ json.each_pair { |k, v| elms << Metadata.new(k, v) }
58
+ when :rules
59
+ json.each_pair { |k, v| elms << Rules.new(k, v) }
54
60
  when :parameters
55
61
  json.each_pair { |k, v| elms << Parameter.new(k, v) }
56
62
  when :resources
@@ -109,6 +109,23 @@ class IntrinsicFunction
109
109
  return "FnJoin(#{seperator}, #{values})"
110
110
  end
111
111
 
112
+ def fn_sub
113
+ origin = '"' + @parameters[0].gsub('"'){'\\"'} + '"'
114
+ values = @parameters[1].ai
115
+ return "FnSub(#{origin}, #{values})"
116
+ end
117
+
118
+ def fn_split
119
+ delimiter = '"' + @parameters[0].gsub('"'){'\\"'} + '"'
120
+ value = '"' + @parameters[1] + '"'
121
+ return "FnSplit(#{delimiter}, #{value})"
122
+ end
123
+
124
+ def fn_import_value
125
+ value = '"' + @parameters[0] + '"'
126
+ return "FnImportValue(#{value})"
127
+ end
128
+
112
129
  def fn_get_a_zs
113
130
  if @parameters.instance_of? String
114
131
  value = '"' + @parameters.gsub('"'){'\\"'} + '"'
@@ -118,4 +135,6 @@ class IntrinsicFunction
118
135
 
119
136
  return "FnGetAZs(#{value})"
120
137
  end
138
+
139
+
121
140
  end
@@ -0,0 +1,9 @@
1
+ class Metadata
2
+ include CfnParser
3
+ attr_reader(:name, :values)
4
+
5
+ def initialize(name, values)
6
+ @name = name
7
+ @values = parse_cfn_json(values)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class Rules
2
+ include CfnParser
3
+ attr_reader(:name, :values)
4
+
5
+ def initialize(name, values)
6
+ @name = name
7
+ @values = parse_cfn_json(values)
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Cfn2dsl
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn2dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Yung
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-19 00:00:00.000000000 Z
12
+ date: 2017-07-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: extlib
@@ -68,10 +68,12 @@ files:
68
68
  - lib/condition.rb
69
69
  - lib/intrinsic_function.rb
70
70
  - lib/mapping.rb
71
+ - lib/metadata.rb
71
72
  - lib/output.rb
72
73
  - lib/parameter.rb
73
74
  - lib/render.rb
74
75
  - lib/resource.rb
76
+ - lib/rules.rb
75
77
  - lib/version.rb
76
78
  homepage: https://github.com/allinwonder/cfn2dsl.git
77
79
  licenses:
@@ -93,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
95
  version: '0'
94
96
  requirements: []
95
97
  rubyforge_project:
96
- rubygems_version: 2.5.1
98
+ rubygems_version: 2.6.12
97
99
  signing_key:
98
100
  specification_version: 4
99
101
  summary: A tool to convert CloudFormation JSON template into a Ruby DSL cfndsl