pec 0.3.2 → 0.3.3

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: 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.