cfoo 0.0.3 → 0.0.4
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/.travis.yml +1 -0
- data/README.md +5 -5
- data/cfoo.gemspec +2 -1
- data/features/yamly_shortcuts.feature +14 -0
- data/lib/cfoo/parser.rb +6 -0
- data/lib/cfoo/version.rb +1 -1
- data/spec/cfoo/yaml_parser_spec.rb +6 -0
- metadata +47 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9931c4f2da716f3ca432c931800fa66967df5a0
|
4
|
+
data.tar.gz: 9f957d8022ffcd26ad2276d6623f4ebac4c83850
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99ab838edd86404818f4a0c0d57ab706b7ec3099a359cc02420caa59910644f181ed83e6cf6f19946719b5cfce47d7117875dfac38deee96177156dc48726f3c
|
7
|
+
data.tar.gz: 24f9dbf1768f3f57b95a4ecebc81d37b266cc7744fdff40a37723b1fcadc36f500503b3e515946dda6d1572184a8cf8a29723d394a91817953039a64a7e45be8
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# Cfoo
|
2
2
|
|
3
|
-
[](https://travis-ci.org/drrb/cfoo)
|
4
|
+
[](https://coveralls.io/r/drrb/cfoo)
|
5
|
+
[](https://codeclimate.com/github/drrb/cfoo)
|
6
6
|
|
7
|
-
[](https://badge.fury.io/rb/cfoo)
|
8
|
+
[](https://gemnasium.com/drrb/cfoo)
|
9
9
|
|
10
10
|
Cfoo (pronounced "sifu") lets you write your [CloudFormation](https://aws.amazon.com/cloudformation)
|
11
11
|
templates [in YAML](#templates), and makes it easier with some [helpers](#shortcuts).
|
data/cfoo.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |gem|
|
|
23
23
|
gem.require_paths = ["lib"]
|
24
24
|
|
25
25
|
gem.add_dependency "json"
|
26
|
-
gem.add_dependency "parslet"
|
26
|
+
gem.add_dependency "parslet", "~> 1.5.0"
|
27
27
|
|
28
28
|
gem.add_development_dependency "bundler", "~> 1.3"
|
29
29
|
gem.add_development_dependency "rake"
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |gem|
|
|
31
31
|
gem.add_development_dependency "cucumber"
|
32
32
|
gem.add_development_dependency "simplecov"
|
33
33
|
gem.add_development_dependency "coveralls", ">= 0.6.3"
|
34
|
+
gem.add_development_dependency "rest-client", "< 1.7.0"
|
34
35
|
gem.add_development_dependency "mime-types", "< 2" # Needed to support Ruby 1.8
|
35
36
|
|
36
37
|
unless ["1.8.7", "1.9.2"].include? RUBY_VERSION
|
@@ -88,6 +88,20 @@ Feature: YAMLy shortcuts
|
|
88
88
|
}
|
89
89
|
"""
|
90
90
|
|
91
|
+
Scenario: AZ listing with empty string
|
92
|
+
Given I have a file "map.yml" containing
|
93
|
+
"""
|
94
|
+
AvailabilityZones: !GetAZs
|
95
|
+
"""
|
96
|
+
When I process "map.yml"
|
97
|
+
Then the output should match JSON
|
98
|
+
"""
|
99
|
+
{
|
100
|
+
"AWSTemplateFormatVersion" : "2010-09-09",
|
101
|
+
"AvailabilityZones" : { "Fn::GetAZs" : "" }
|
102
|
+
}
|
103
|
+
"""
|
104
|
+
|
91
105
|
Scenario: Base64 string
|
92
106
|
Given I have a file "multistring.yml" containing
|
93
107
|
"""
|
data/lib/cfoo/parser.rb
CHANGED
@@ -65,6 +65,12 @@ module YAML
|
|
65
65
|
case type_id
|
66
66
|
when "Ref"
|
67
67
|
{ "Ref" => value.expand_el }
|
68
|
+
when "GetAZs"
|
69
|
+
if value.nil?
|
70
|
+
{ "Fn::GetAZs" => "" }
|
71
|
+
else
|
72
|
+
{ "Fn::GetAZs" => value.expand_el }
|
73
|
+
end
|
68
74
|
when CLOUDFORMATION_FUNCTION_REGEX
|
69
75
|
{ "Fn::#{type_id}" => value.expand_el }
|
70
76
|
when "Concat"
|
data/lib/cfoo/version.rb
CHANGED
@@ -71,6 +71,12 @@ module Cfoo
|
|
71
71
|
|
72
72
|
parser.load_file("#{working_dir}/get_azs.yml").should == YAML::DomainType.create("GetAZs", "myregion")
|
73
73
|
end
|
74
|
+
it "converts empty AZ lookups to GetAZs function-calls" do
|
75
|
+
write "#{working_dir}/get_azs_empty.yml", "!GetAZs ''"
|
76
|
+
|
77
|
+
value = YAML.name == "Psych" ? nil : ""
|
78
|
+
parser.load_file("#{working_dir}/get_azs_empty.yml").should == YAML::DomainType.create("GetAZs", value)
|
79
|
+
end
|
74
80
|
end
|
75
81
|
end
|
76
82
|
|
metadata
CHANGED
@@ -1,181 +1,195 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- drrb
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: parslet
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.5.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.5.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: cucumber
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: simplecov
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: coveralls
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: 0.6.3
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 0.6.3
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rest-client
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "<"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.7.0
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "<"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.7.0
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: mime-types
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - <
|
143
|
+
- - "<"
|
130
144
|
- !ruby/object:Gem::Version
|
131
145
|
version: '2'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - <
|
150
|
+
- - "<"
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '2'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: guard
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- -
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
159
|
version: '0'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- -
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
166
|
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: guard-rspec
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- -
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
173
|
version: '0'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- -
|
178
|
+
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: terminal-notifier-guard
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
|
-
- -
|
185
|
+
- - ">="
|
172
186
|
- !ruby/object:Gem::Version
|
173
187
|
version: '0'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
|
-
- -
|
192
|
+
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: '0'
|
181
195
|
description: 'Cfoo: CloudFormation master'
|
@@ -186,9 +200,9 @@ executables:
|
|
186
200
|
extensions: []
|
187
201
|
extra_rdoc_files: []
|
188
202
|
files:
|
189
|
-
- .gitignore
|
190
|
-
- .simplecov
|
191
|
-
- .travis.yml
|
203
|
+
- ".gitignore"
|
204
|
+
- ".simplecov"
|
205
|
+
- ".travis.yml"
|
192
206
|
- Gemfile
|
193
207
|
- Guardfile
|
194
208
|
- LICENSE.txt
|
@@ -247,12 +261,12 @@ require_paths:
|
|
247
261
|
- lib
|
248
262
|
required_ruby_version: !ruby/object:Gem::Requirement
|
249
263
|
requirements:
|
250
|
-
- -
|
264
|
+
- - ">="
|
251
265
|
- !ruby/object:Gem::Version
|
252
266
|
version: '0'
|
253
267
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
254
268
|
requirements:
|
255
|
-
- -
|
269
|
+
- - ">="
|
256
270
|
- !ruby/object:Gem::Version
|
257
271
|
version: '0'
|
258
272
|
requirements: []
|