packerman 0.1.0 → 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,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