pec 0.3.2 → 0.3.3

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: 3104c9b6a47858913071b4043cc30518e06fd4e3
4
- data.tar.gz: e86b65d8429f153dc74a36e519c2ac8380ea9f70
3
+ metadata.gz: ae9991c84cf924eeded0c16490deff591c71818d
4
+ data.tar.gz: b98a208107bef4732f3e4d48c17655f7d06de6bc
5
5
  SHA512:
6
- metadata.gz: 8454514856ad2304674d4feede2de13b4538deb8f6229f703ff56330a05d7dfc308ed538fd3ea3dc504ba182fc3c32ed7d95d561e04c87f29765ee6febf63dd4
7
- data.tar.gz: 3b1ff24df7b0bfa7bc2163db8777fe7f2e1236c331d140038740e8596dc97da26a2ba31c727172f80806d353f849da1b53de88f499706e0670ddb78b3491f346
6
+ metadata.gz: 2f56a90b1cbfeeeff1654ff0cd6e7a6cd625976aa49cd438f848ba0f8998c47281eec54429f678bd07cf3459a49b188da59a59d23439a32223c480830936d8b4
7
+ data.tar.gz: 2059f9a12057dbb4c64bbb31bdd88298df94b4da33db613598a3710cfb6fb1de3fe2ae53b9e4512fcb4d1d66e4c1b462c47a9bb7ce64af29683b6d44fff82226
data/Gemfile CHANGED
@@ -2,5 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in pec.gemspec
4
4
  gemspec
5
- gem 'fog', :git => 'https://github.com/fog/fog.git'
6
5
  gem "codeclimate-test-reporter", group: :test, require: nil
data/lib/pec.rb CHANGED
@@ -31,3 +31,13 @@ require "pec/cli"
31
31
  module Pec
32
32
  end
33
33
 
34
+ class ::Hash
35
+ def deep_merge(second)
36
+ merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
37
+ self.merge(second.to_h, &merger)
38
+ end
39
+ def deep_merge!(second)
40
+ merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
41
+ self.merge!(second.to_h, &merger)
42
+ end
43
+ end
@@ -6,8 +6,8 @@ module Pec
6
6
  def make(config, ports)
7
7
  user_data = {}
8
8
  user_data["write_files"] = make_port_content(config, ports) if ports
9
- user_data.merge!(config.user_data) if config.user_data
10
- user_data.merge!(get_template(config)) if get_template(config)
9
+ user_data.deep_merge!(config.user_data) if config.user_data
10
+ user_data.deep_merge!(get_template(config)) if get_template(config)
11
11
  Base64.encode64("#cloud-config\n" + user_data.to_yaml)
12
12
  end
13
13
 
@@ -15,7 +15,7 @@ module Pec
15
15
  config.templates.inject({}) do |merge_template, template|
16
16
  template.to_s.concat('.yaml') unless template.to_s.match(/.*\.yaml/)
17
17
  raise(Pec::Errors::UserData, "template:#{template} is not fond!") unless FileTest.exist?("user_datas/#{template}")
18
- merge_template.merge!(YAML.load_file("user_datas/#{template}").to_hash)
18
+ merge_template.deep_merge!(YAML.load_file("user_datas/#{template}").to_hash)
19
19
  end if config.templates
20
20
  end
21
21
 
@@ -34,3 +34,4 @@ module Pec
34
34
  end
35
35
  end
36
36
  end
37
+
data/lib/pec/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pec
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kazuhiko yamashita
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  version: '0'
191
191
  requirements: []
192
192
  rubyforge_project:
193
- rubygems_version: 2.4.8
193
+ rubygems_version: 2.2.2
194
194
  signing_key:
195
195
  specification_version: 4
196
196
  summary: openstack vm booter.