cfn2dsl 0.2.0 → 0.3.1

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: 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