packerman 0.1.0 → 0.2.0

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: c0c9763c417c163515c0f0288988a5e51fd5dac8
4
- data.tar.gz: 856dee55d5daa41394f57e17197de2e01cceed39
3
+ metadata.gz: f9313e2e936836a98d51194bee8e597e7df421ad
4
+ data.tar.gz: cd654cd2ff4b994aff5e7b5d773d500a982fd135
5
5
  SHA512:
6
- metadata.gz: 9d3287f8c2a44164ed8bc2dce90de2b93ae55c7937d31730fd291861542aa314befc5f5c7d89df8d28d03caa89a0311e66d5b706d9957a3dc83f17953286c11d
7
- data.tar.gz: 3078dc5f86650e11db601d9cb4f4aff1eaa37a8e5fc9cef74b10a2bb6fa26346a8325da099ce11212dafe2426beb135c2ab79c78cc658b6a332530140373627c
6
+ metadata.gz: 014aa64fc2af9ece0d5078a558c6968a9d5cdafb32213225341f65a56d292b0ed342633fbd263ca47bcb6f528304263c4468ddbc3a17748d8154ba79e08f3959
7
+ data.tar.gz: d860f10a0b3236ec560a079336dcdf0f51252b9bf75a2c9004c2e83496d62447e81d4234193086e5472099905dd28712fdc0dd705f39be267ed7b9a224eba996
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ [![Code Climate](https://codeclimate.com/github/the40san/packerman/badges/gpa.svg)](https://codeclimate.com/github/the40san/packerman)
2
+ [![Test Coverage](https://codeclimate.com/github/the40san/packerman/badges/coverage.svg)](https://codeclimate.com/github/the40san/packerman/coverage)
3
+
1
4
  # packerman
2
5
  Ruby DSL for Packer by HashiCorp.
3
6
 
@@ -0,0 +1,13 @@
1
+ class Packerman::Dsl::Variables < Packerman::Dsl
2
+ def initialize
3
+ @_hash = {}
4
+ end
5
+
6
+ def method_missing(method, *args)
7
+ @_hash[method] ||= args.first
8
+ end
9
+
10
+ def to_hash
11
+ @_hash
12
+ end
13
+ end
@@ -16,7 +16,7 @@ class Packerman::Evaluator
16
16
  end
17
17
 
18
18
  def parse(template)
19
- parts = %w(Builders Provisioners)
19
+ parts = %w(Builders Provisioners AmiBlockDeviceMapping Variables)
20
20
  parts.inject(template) do |memo, part|
21
21
  memo.gsub(part, "#{part}.register")
22
22
  end
@@ -1,11 +1,11 @@
1
1
  class Packerman::Repository
2
- TEMPLATE_ATTRIBUTES = [:builders, :provisioners]
2
+ ARRAY_ATTRIBUTES = [:builders, :provisioners]
3
3
 
4
4
  def initialize
5
5
  @_repo = {}
6
6
  end
7
7
 
8
- TEMPLATE_ATTRIBUTES.each do |attr|
8
+ ARRAY_ATTRIBUTES.each do |attr|
9
9
  define_method "add_#{attr}" do |hash|
10
10
  @_repo[attr] ||= []
11
11
  @_repo[attr] << hash
@@ -13,6 +13,12 @@ class Packerman::Repository
13
13
  end
14
14
  end
15
15
 
16
+ def add_variables(hash)
17
+ @_repo[:variables] ||= {}
18
+ @_repo[:variables].merge!(hash)
19
+ hash
20
+ end
21
+
16
22
  def to_hash
17
23
  @_repo
18
24
  end
@@ -1,3 +1,3 @@
1
1
  module Packerman
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/packerman.rb CHANGED
@@ -18,6 +18,7 @@ require 'packerman/dsl/builders/docker'
18
18
  require 'packerman/dsl/provisioners'
19
19
  require 'packerman/dsl/provisioners/shell'
20
20
  require 'packerman/dsl/provisioners/chef_solo'
21
+ require 'packerman/dsl/variables'
21
22
 
22
23
  module Packerman
23
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packerman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masashi AKISUE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-23 00:00:00.000000000 Z
11
+ date: 2015-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -97,6 +97,7 @@ files:
97
97
  - lib/packerman/dsl/provisioners.rb
98
98
  - lib/packerman/dsl/provisioners/chef_solo.rb
99
99
  - lib/packerman/dsl/provisioners/shell.rb
100
+ - lib/packerman/dsl/variables.rb
100
101
  - lib/packerman/evaluator.rb
101
102
  - lib/packerman/repository.rb
102
103
  - lib/packerman/version.rb