cfer 0.1.3 → 0.2.0

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZWVkYTNhODMzYjViNDE5NGYwMjY0MGJkYTMwMWI0NGU0YTI3M2UzYQ==
4
+ M2IzNjMyMzZiNTJiZjhkNjU2OGYyZTNmNmZjMDFkYWQzZGRhNTQ1NA==
5
5
  data.tar.gz: !binary |-
6
- ZWMzZDQzMzAxMWRiZGNhODVmODYzMTU1NjU0NzBkZjMyYmZkY2U0ZQ==
6
+ MjQ5NGU4Mjc4ODUwZWFlZGM3MTBmNGRlOTY5MjE5NDI3MjQyMmJhMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Nzg3MzgyNmYzODRkZDUwY2UyMzk0NjIxYjk2MTZhYjI2YjYyOTUxM2EwNGUz
10
- NGE4YmM1MWUyMGVjNmNjMDFmMzlkOWY3NzNmNWNmNjY0YzA3NWM0MTY1MzM5
11
- Zjg4MTM1ZmRkNzMxMTExOTFiNjNmMTczNWEwZWVmZGExMjhkYjM=
9
+ YzE4OWI3YTM2MDdmZjBkZDM3YTM0ODExZjdiOTk2YmQ4YWRjZTU3ODg1MTdm
10
+ NjBiNDRlM2MwYTJhOTNiMjExNzIxOGNlNzVhNmVkZjI1MGM4YmY4MTA1YzU5
11
+ ZWQ4MTQ1YTlkZDNhOWQ1ZTQ3MzEwYjY4MTkyNGE4NWVmN2RlNTU=
12
12
  data.tar.gz: !binary |-
13
- ODJiZGZlNTU4MzZlMzI4ODg5NjM3ZDVhOTBjNTFjNzM3ZDEzYmY1ZDA1NWI5
14
- ZmQ4Y2M5ODIzNjUyZTUzOGRmOTRkMzk5N2E1NDY4Y2ViZDI5NmIxY2NmYjMy
15
- ZDQwYjBlOGIxYjYxMjkwNDM1MzU4NGM5NTgxZTFiOGRhMmUzODA=
13
+ NmM1Y2M4YWI3MjQ3NzM3OWRkMzMzNzhjNDI1YWM4NzkwNzExYjVlN2FhNDI3
14
+ NzA1ODdmOGNhYzNhMWM3NTAwNjVjOTQ3OGZhYzQ1OTM3MThmMDFkNGVmNzg0
15
+ NWFjMGE0MjQzYTU0NzkxMjhiMzQzN2E4OGEzMTJkZjkxYzFiNmM=
@@ -0,0 +1,5 @@
1
+ FROM ruby:2.2
2
+ COPY . /usr/src/app
3
+ WORKDIR /usr/src/app
4
+ RUN bundle install
5
+
data/README.md CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  Cfer is a lightweight toolkit for managing CloudFormation templates.
8
8
 
9
+ Read about Cfer [here](http://tilmonedwards.com/2015/07/28/cfer.html).
10
+
9
11
  ## Installation
10
12
 
11
13
  Add this line to your application's Gemfile:
@@ -137,6 +139,29 @@ Outputs may be defined using the `output` function:
137
139
  output :OutputName, Fn::ref(:ResourceName)
138
140
  ```
139
141
 
142
+ #### Including code from multiple files
143
+
144
+ Templates can get pretty large, and splitting template code into multiple
145
+ files can help keep things more manageable. The `include_template`
146
+ function works in a similar way to ruby's `require_relative`, but
147
+ within the context of the CloudFormation stack:
148
+
149
+ ```ruby
150
+ include_template 'ec2.rb'
151
+ ```
152
+
153
+ You can also include multiple files in a single call:
154
+
155
+ ```ruby
156
+ include_template(
157
+ 'stack/ec2.rb',
158
+ 'stack/elb.rb'
159
+ )
160
+ ```
161
+
162
+ The path to included files is relative to the base template file
163
+ (e.g. the `converge` command `-t` option).
164
+
140
165
  ## SDK
141
166
 
142
167
  Embedding the Cfer SDK involves interacting with two components: The `Client` and the `Stack`.
@@ -212,6 +237,8 @@ This project uses [git-flow](http://nvie.com/posts/a-successful-git-branching-mo
212
237
 
213
238
  Always use `--no-ff` when merging into `develop` or `master`.
214
239
 
240
+ This project also contains a [Code of Conduct](CODE_OF_CONDUCT.md), which should be followed when submitting feedback or contributions to this project.
241
+
215
242
  ### New features
216
243
 
217
244
  * Branch from `develop`
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- require "bundler/gem_tasks"
1
+ #require "bundler/gem_tasks"
2
2
  gem 'cfer'
3
3
  require 'cfer'
4
4
  require 'highline'
@@ -39,3 +39,19 @@ end
39
39
 
40
40
  task :converge => [:vpc, :instance]
41
41
 
42
+
43
+ ########################
44
+ ##### END OF DEMO ######
45
+ ########################
46
+
47
+
48
+ # This task isn't really part of Cfer.
49
+ # It just makes it easier for me to release new versions.
50
+ task :release do
51
+ require_relative 'lib/cfer/version.rb'
52
+
53
+ `git checkout master`
54
+ `git merge develop --no-ff -m 'Merge from develop for release v#{Cfer::VERSION}'`
55
+ `git tag -m "Release v#{Cfer::VERSION}" #{Cfer::VERSION}`
56
+ end
57
+
@@ -230,6 +230,7 @@ module Cfer
230
230
  end
231
231
  end
232
232
 
233
+ Dir["#{File.dirname(__FILE__)}/cfer/*.rb"].each { |f| require(f) }
233
234
  Dir["#{File.dirname(__FILE__)}/cfer/**/*.rb"].each { |f| require(f) }
234
235
  Dir["#{File.dirname(__FILE__)}/cferext/**/*.rb"].each { |f| require(f) }
235
236
 
@@ -1,6 +1,6 @@
1
1
  module Cfer::Cfn
2
2
  class Resource < Cfer::Block
3
- NON_PROXIED_METHODS = [:parameters, :options]
3
+ NON_PROXIED_METHODS = [:parameters, :options, :resolve]
4
4
 
5
5
  def initialize(name, type, **options, &block)
6
6
  @name = name
@@ -159,6 +159,17 @@ module Cfer::Core
159
159
  to_h.to_json
160
160
  end
161
161
 
162
+ # Includes template code from one or more files, and evals it in the context of this stack.
163
+ # Filenames are relative to the file containing the invocation of this method.
164
+ def include_template(*files)
165
+ calling_file = caller.first.split(/:\d/,2).first
166
+ dirname = File.dirname(calling_file)
167
+ files.each do |file|
168
+ path = File.join(dirname, file)
169
+ instance_eval(File.read(path), path)
170
+ end
171
+ end
172
+
162
173
  private
163
174
  def verify_param(param_name, err_msg)
164
175
  raise Cfer::Util::CferError, err_msg if (@parameters[param_name] && !yield(@parameters[param_name].to_s))
@@ -1,3 +1,3 @@
1
1
  module Cfer
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Edwards
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-20 00:00:00.000000000 Z
11
+ date: 2015-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docile
@@ -205,6 +205,7 @@ files:
205
205
  - .travis.yml
206
206
  - .yardopts
207
207
  - CODE_OF_CONDUCT.md
208
+ - Dockerfile
208
209
  - Gemfile
209
210
  - LICENSE.txt
210
211
  - README.md