chef-sugar-ng 4.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.github/lock.yml +3 -0
  3. data/.github/reaction.yml +1 -0
  4. data/.gitignore +26 -0
  5. data/.kitchen.yml +16 -0
  6. data/.travis.yml +17 -0
  7. data/CHANGELOG.md +261 -0
  8. data/CONTRIBUTING.md +20 -0
  9. data/Gemfile +2 -0
  10. data/LICENSE +201 -0
  11. data/README.md +540 -0
  12. data/Rakefile +11 -0
  13. data/chef-sugar-ng.gemspec +33 -0
  14. data/lib/chef/sugar.rb +51 -0
  15. data/lib/chef/sugar/architecture.rb +171 -0
  16. data/lib/chef/sugar/cloud.rb +192 -0
  17. data/lib/chef/sugar/constraints.rb +108 -0
  18. data/lib/chef/sugar/constraints_dsl.rb +83 -0
  19. data/lib/chef/sugar/core_extensions.rb +19 -0
  20. data/lib/chef/sugar/core_extensions/array.rb +34 -0
  21. data/lib/chef/sugar/core_extensions/object.rb +27 -0
  22. data/lib/chef/sugar/core_extensions/string.rb +66 -0
  23. data/lib/chef/sugar/data_bag.rb +146 -0
  24. data/lib/chef/sugar/docker.rb +40 -0
  25. data/lib/chef/sugar/filters.rb +227 -0
  26. data/lib/chef/sugar/init.rb +62 -0
  27. data/lib/chef/sugar/ip.rb +48 -0
  28. data/lib/chef/sugar/kernel.rb +49 -0
  29. data/lib/chef/sugar/kitchen.rb +40 -0
  30. data/lib/chef/sugar/node.rb +213 -0
  31. data/lib/chef/sugar/platform.rb +327 -0
  32. data/lib/chef/sugar/platform_family.rb +179 -0
  33. data/lib/chef/sugar/ruby.rb +51 -0
  34. data/lib/chef/sugar/run_context.rb +41 -0
  35. data/lib/chef/sugar/shell.rb +147 -0
  36. data/lib/chef/sugar/vagrant.rb +77 -0
  37. data/lib/chef/sugar/version.rb +21 -0
  38. data/lib/chef/sugar/virtualization.rb +151 -0
  39. data/libraries/chef-sugar.rb +1 -0
  40. data/metadata.rb +24 -0
  41. data/recipes/default.rb +20 -0
  42. data/spec/spec_helper.rb +25 -0
  43. data/spec/support/shared_examples.rb +20 -0
  44. data/spec/unit/chef/sugar/architecture_spec.rb +129 -0
  45. data/spec/unit/chef/sugar/cloud_spec.rb +149 -0
  46. data/spec/unit/chef/sugar/constraints_spec.rb +45 -0
  47. data/spec/unit/chef/sugar/core_extensions/array_spec.rb +10 -0
  48. data/spec/unit/chef/sugar/core_extensions/object_spec.rb +62 -0
  49. data/spec/unit/chef/sugar/core_extensions/string_spec.rb +48 -0
  50. data/spec/unit/chef/sugar/data_bag_spec.rb +118 -0
  51. data/spec/unit/chef/sugar/docker_spec.rb +39 -0
  52. data/spec/unit/chef/sugar/init_spec.rb +74 -0
  53. data/spec/unit/chef/sugar/ip_spec.rb +53 -0
  54. data/spec/unit/chef/sugar/kernel_spec.rb +16 -0
  55. data/spec/unit/chef/sugar/kitchen_spec.rb +18 -0
  56. data/spec/unit/chef/sugar/node_spec.rb +172 -0
  57. data/spec/unit/chef/sugar/platform_family_spec.rb +166 -0
  58. data/spec/unit/chef/sugar/platform_spec.rb +342 -0
  59. data/spec/unit/chef/sugar/ruby_spec.rb +39 -0
  60. data/spec/unit/chef/sugar/run_context_spec.rb +19 -0
  61. data/spec/unit/chef/sugar/shell_spec.rb +104 -0
  62. data/spec/unit/chef/sugar/vagrant_spec.rb +37 -0
  63. data/spec/unit/chef/sugar/virtualization_spec.rb +135 -0
  64. data/spec/unit/recipes/default_spec.rb +9 -0
  65. metadata +202 -0
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe Chef::Sugar::Ruby do
4
+ it_behaves_like 'a chef sugar'
5
+
6
+ describe '#ruby_20?' do
7
+ it 'returns true when the ruby version is 2.0' do
8
+ node = { 'languages' => { 'ruby' => { 'version' => '2.0.0' } } }
9
+ expect(described_class.ruby_20?(node)).to be true
10
+ end
11
+
12
+ it 'returns true when the ruby version is less than 2.0' do
13
+ node = { 'languages' => { 'ruby' => { 'version' => '1.9.3' } } }
14
+ expect(described_class.ruby_20?(node)).to be false
15
+ end
16
+
17
+ it 'returns false when the ruby version is higher than 2.0' do
18
+ node = { 'languages' => { 'ruby' => { 'version' => '3.0.0' } } }
19
+ expect(described_class.ruby_20?(node)).to be false
20
+ end
21
+ end
22
+
23
+ describe '#ruby_19?' do
24
+ it 'returns true when the ruby version is 1.9' do
25
+ node = { 'languages' => { 'ruby' => { 'version' => '1.9.1' } } }
26
+ expect(described_class.ruby_19?(node)).to be true
27
+ end
28
+
29
+ it 'returns true when the ruby version is less than 1.9' do
30
+ node = { 'languages' => { 'ruby' => { 'version' => '1.8.7' } } }
31
+ expect(described_class.ruby_19?(node)).to be false
32
+ end
33
+
34
+ it 'returns false when the ruby version is higher than 1.9' do
35
+ node = { 'languages' => { 'ruby' => { 'version' => '2.0.0' } } }
36
+ expect(described_class.ruby_19?(node)).to be false
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Chef::Sugar::RunContext do
4
+ it_behaves_like 'a chef sugar'
5
+
6
+ describe '#includes_recipe?' do
7
+ let(:node) { double(Chef::Node) }
8
+
9
+ it 'returns true when the recipe exists' do
10
+ allow(node).to receive(:recipe?).and_return(true)
11
+ expect(described_class.includes_recipe?(node, 'foo')).to be true
12
+ end
13
+
14
+ it 'returns false when the recipe does not exist' do
15
+ allow(node).to receive(:recipe?).and_return(false)
16
+ expect(described_class.includes_recipe?(node, 'bar')).to be false
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,104 @@
1
+ require 'spec_helper'
2
+
3
+ describe Chef::Sugar::Shell do
4
+ describe '#which' do
5
+ it 'returns the first executable matching the command' do
6
+ allow(File).to receive(:executable?).and_return(false)
7
+ allow(File).to receive(:executable?).with('/usr/bin/mongo').and_return(true)
8
+ expect(described_class.which('mongo')).to eq('/usr/bin/mongo')
9
+ end
10
+
11
+ it 'returns nil when no command is found' do
12
+ allow(File).to receive(:executable?).and_return(false)
13
+ expect(described_class.which('node')).to be_nil
14
+ end
15
+
16
+ context 'with an absolute path' do
17
+ it 'returns the executable if it exists' do
18
+ allow(File).to receive(:executable?).with('/usr/local/bin/bash').and_return(true)
19
+ expect(described_class.which('/usr/local/bin/bash')).to eq('/usr/local/bin/bash')
20
+ end
21
+
22
+ it 'returns nil when the file is not executable' do
23
+ allow(File).to receive(:executable?).with('/usr/local/bin/bash').and_return(false)
24
+ expect(described_class.which('/usr/local/bin/bash')).to be_nil
25
+ end
26
+ end
27
+ end
28
+
29
+ describe '#dev_null' do
30
+ it 'returns NUL on Windows' do
31
+ node = { 'platform_family' => 'windows' }
32
+ expect(described_class.dev_null(node)).to eq('NUL')
33
+ end
34
+
35
+ it 'returns /dev/null on Linux' do
36
+ node = { 'platform_family' => 'debian' }
37
+ expect(described_class.dev_null(node)).to eq('/dev/null')
38
+ end
39
+ end
40
+
41
+ describe '#installed?' do
42
+ it 'returns true if the given binary exists' do
43
+ allow(described_class).to receive(:which).and_return(nil)
44
+ allow(described_class).to receive(:which).with('mongo').and_return(true)
45
+ expect(described_class.installed?('mongo')).to be true
46
+ end
47
+
48
+ it 'returns false if the given binary does not exist' do
49
+ allow(File).to receive(:executable?).and_return(false)
50
+ expect(described_class.installed?('node')).to be false
51
+ end
52
+ end
53
+
54
+ describe '#installed_at_version?' do
55
+ it 'returns true if the command is installed at the correct version' do
56
+ allow(described_class).to receive(:which).and_return(true)
57
+ allow(described_class).to receive(:version_for).and_return('1.2.3')
58
+ expect(described_class.installed_at_version?('mongo', '1.2.3')).to be true
59
+ end
60
+
61
+ it 'returns true if the command is installed at the correct version and has additional output' do
62
+ allow(described_class).to receive(:which).and_return(true)
63
+ allow(described_class).to receive(:version_for).and_return('Mongo DB version 1.2.3. Some other text.')
64
+ expect(described_class.installed_at_version?('mongo', '1.2.3')).to be true
65
+ end
66
+
67
+ it 'returns true if the command is installed at the correct version with a regex' do
68
+ allow(described_class).to receive(:which).and_return(true)
69
+ allow(described_class).to receive(:version_for).and_return('1.2.3')
70
+ expect(described_class.installed_at_version?('mongo', /1\.2/)).to be true
71
+ end
72
+
73
+ it 'returns false if the command is installed at the wrong version' do
74
+ allow(described_class).to receive(:which).and_return(true)
75
+ allow(described_class).to receive(:version_for).and_return('1.2.3')
76
+ expect(described_class.installed_at_version?('mongo', '4.5.6')).to be false
77
+ end
78
+
79
+ it 'returns false if #version_for is nil' do
80
+ allow(described_class).to receive(:which).and_return(true)
81
+ allow(described_class).to receive(:version_for).and_return(nil)
82
+ expect(described_class.installed_at_version?('mongo', '4.5.6')).to be false
83
+ end
84
+
85
+ it 'returns false if the command is not installed' do
86
+ allow(described_class).to receive(:which).and_return(nil)
87
+ expect(described_class.installed_at_version?('mongo', '1.0.0')).to be false
88
+ end
89
+ end
90
+
91
+ describe '#version_for' do
92
+ let(:shell_out) { double('shell_out', run_command: nil, error!: nil, stdout: '1.2.3', stderr: 'Oh no!') }
93
+ before { allow(Mixlib::ShellOut).to receive(:new).and_return(shell_out) }
94
+
95
+ it 'runs the thing in shellout' do
96
+ expect(Mixlib::ShellOut).to receive(:new).with('mongo --version')
97
+ described_class.version_for('mongo')
98
+ end
99
+
100
+ it 'returns the combined stdout and stderr' do
101
+ expect(described_class.version_for('mongo')).to eq("1.2.3\nOh no!")
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe Chef::Sugar::Vagrant do
4
+ it_behaves_like 'a chef sugar'
5
+
6
+ describe '#vagrant?' do
7
+ it 'returns true when the machine is on vagrant' do
8
+ node = { 'vagrant' => {} }
9
+ expect(described_class.vagrant?(node)).to be true
10
+ end
11
+
12
+ it 'returns true when the domain is vagrantup.com' do
13
+ node = { 'domain' => 'bacon.vagrantup.com' }
14
+ expect(described_class.vagrant?(node)).to be true
15
+ end
16
+
17
+ it 'returns false when the domain is nil' do
18
+ node = { 'domain' => nil }
19
+ expect(described_class.vagrant?(node)).to be false
20
+ end
21
+
22
+ it 'returns false when the domain is not vagrantup.com' do
23
+ node = { 'domain' => 'sethvargo.com' }
24
+ expect(described_class.vagrant?(node)).to be false
25
+ end
26
+
27
+ it 'returns true when the vagrant user exists on the system' do
28
+ node = { 'etc' => { 'passwd' => { 'vagrant' => {} } } }
29
+ expect(described_class.vagrant?(node)).to be true
30
+ end
31
+
32
+ it 'returns false when the machine is not on vagrant' do
33
+ node = {}
34
+ expect(described_class.vagrant?(node)).to be false
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,135 @@
1
+ require 'spec_helper'
2
+
3
+ describe Chef::Sugar::Virtualization do
4
+ it_behaves_like 'a chef sugar'
5
+
6
+ describe '#kvm?' do
7
+ it 'returns true when the machine is under kvm' do
8
+ node = { 'virtualization' => { 'system' => 'kvm' } }
9
+ expect(described_class.kvm?(node)).to be true
10
+ end
11
+
12
+ it 'returns false when the virtual machine is not under kvm' do
13
+ node = { 'virtualization' => { 'system' => 'vbox' } }
14
+ expect(described_class.kvm?(node)).to be false
15
+ end
16
+
17
+ it 'returns false when the machine is not virtual' do
18
+ node = {}
19
+ expect(described_class.kvm?(node)).to be false
20
+ end
21
+ end
22
+
23
+ describe '#lxc?' do
24
+ it 'returns true when the machine is a linux contianer' do
25
+ node = { 'virtualization' => { 'system' => 'lxc' } }
26
+ expect(described_class.lxc?(node)).to be true
27
+ end
28
+
29
+ it 'returns false when the virtual machine is not lxc' do
30
+ node = { 'virtualization' => { 'system' => 'vbox' } }
31
+ expect(described_class.lxc?(node)).to be false
32
+ end
33
+
34
+ it 'returns false when the machine is not virtual' do
35
+ node = {}
36
+ expect(described_class.lxc?(node)).to be false
37
+ end
38
+ end
39
+
40
+ describe '#parallels?' do
41
+ it 'returns true when the machine is under parallels' do
42
+ node = { 'virtualization' => { 'system' => 'Parallels' } }
43
+ expect(described_class.parallels?(node)).to be true
44
+ end
45
+
46
+ it 'returns false when the virtual machine is not under parallels' do
47
+ node = { 'virtualization' => { 'system' => 'kvm' } }
48
+ expect(described_class.parallels?(node)).to be false
49
+ end
50
+
51
+ it 'returns false when the machine is not virtual' do
52
+ node = {}
53
+ expect(described_class.parallels?(node)).to be false
54
+ end
55
+ end
56
+
57
+ describe '#virtualbox?' do
58
+ it 'returns true when the machine is under virtualbox' do
59
+ node = { 'virtualization' => { 'system' => 'vbox' } }
60
+ expect(described_class.virtualbox?(node)).to be true
61
+ end
62
+
63
+ it 'returns false when the virtual machine is not under virtualbox' do
64
+ node = { 'virtualization' => { 'system' => 'kvm' } }
65
+ expect(described_class.virtualbox?(node)).to be false
66
+ end
67
+
68
+ it 'returns false when the machine is not virtual' do
69
+ node = {}
70
+ expect(described_class.virtualbox?(node)).to be false
71
+ end
72
+ end
73
+
74
+ describe '#vmware?' do
75
+ it 'returns true when the machine is under vmware' do
76
+ node = { 'virtualization' => { 'system' => 'vmware' } }
77
+ expect(described_class.vmware?(node)).to be true
78
+ end
79
+
80
+ it 'returns false when the virtual machine is not under vmware' do
81
+ node = { 'virtualization' => { 'system' => 'vbox' } }
82
+ expect(described_class.vmware?(node)).to be false
83
+ end
84
+
85
+ it 'returns false when the machine is not virtual' do
86
+ node = {}
87
+ expect(described_class.vmware?(node)).to be false
88
+ end
89
+ end
90
+
91
+ describe '#openvz?' do
92
+ it 'returns true when the machine is under openvz' do
93
+ node = { 'virtualization' => { 'system' => 'openvz' } }
94
+ expect(described_class.openvz?(node)).to be true
95
+ end
96
+
97
+ it 'returns false when the virtual machine is not under openvz' do
98
+ node = { 'virtualization' => { 'system' => 'kvm' } }
99
+ expect(described_class.openvz?(node)).to be false
100
+ end
101
+
102
+ it 'returns false when the machine is not virtual' do
103
+ node = {}
104
+ expect(described_class.openvz?(node)).to be false
105
+ end
106
+ end
107
+
108
+ describe '#virtual?' do
109
+ it 'returns true when the machine is under a supported virtualization provider' do
110
+ %w(openvz vmware vbox lxc kvm).each do |host|
111
+ node = { 'virtualization' => { 'system' => host } }
112
+ expect(described_class.virtual?(node)).to be true
113
+ end
114
+ end
115
+
116
+ it 'returns false when the machine is not virtual' do
117
+ node = {}
118
+ expect(described_class.virtual?(node)).to be false
119
+ end
120
+ end
121
+
122
+ describe '#physical?' do
123
+ it 'returns false when the machine is under a supported virtualization provider' do
124
+ %w(openvz vmware vbox lxc kvm).each do |host|
125
+ node = { 'virtualization' => { 'system' => host } }
126
+ expect(described_class.physical?(node)).to be false
127
+ end
128
+ end
129
+
130
+ it 'returns true when the machine is not virtual' do
131
+ node = {}
132
+ expect(described_class.physical?(node)).to be true
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'chef-sugar::default' do
4
+ let(:chef_run) { ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '16.04').converge(described_recipe) }
5
+
6
+ it 'converges successfully' do
7
+ expect { :chef_run }.to_not raise_error
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,202 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chef-sugar-ng
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Seth Vargo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-09-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: chefspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: test-kitchen
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: kitchen-vagrant
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: A series of helpful sugar of the Chef core and other resources to make
84
+ a cleaner, more lean recipe DSL, enforce DRY principles, and make writing Chef recipes
85
+ an awesome experience!
86
+ email:
87
+ - sethvargo@gmail.com
88
+ executables: []
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - ".github/lock.yml"
93
+ - ".github/reaction.yml"
94
+ - ".gitignore"
95
+ - ".kitchen.yml"
96
+ - ".travis.yml"
97
+ - CHANGELOG.md
98
+ - CONTRIBUTING.md
99
+ - Gemfile
100
+ - LICENSE
101
+ - README.md
102
+ - Rakefile
103
+ - chef-sugar-ng.gemspec
104
+ - lib/chef/sugar.rb
105
+ - lib/chef/sugar/architecture.rb
106
+ - lib/chef/sugar/cloud.rb
107
+ - lib/chef/sugar/constraints.rb
108
+ - lib/chef/sugar/constraints_dsl.rb
109
+ - lib/chef/sugar/core_extensions.rb
110
+ - lib/chef/sugar/core_extensions/array.rb
111
+ - lib/chef/sugar/core_extensions/object.rb
112
+ - lib/chef/sugar/core_extensions/string.rb
113
+ - lib/chef/sugar/data_bag.rb
114
+ - lib/chef/sugar/docker.rb
115
+ - lib/chef/sugar/filters.rb
116
+ - lib/chef/sugar/init.rb
117
+ - lib/chef/sugar/ip.rb
118
+ - lib/chef/sugar/kernel.rb
119
+ - lib/chef/sugar/kitchen.rb
120
+ - lib/chef/sugar/node.rb
121
+ - lib/chef/sugar/platform.rb
122
+ - lib/chef/sugar/platform_family.rb
123
+ - lib/chef/sugar/ruby.rb
124
+ - lib/chef/sugar/run_context.rb
125
+ - lib/chef/sugar/shell.rb
126
+ - lib/chef/sugar/vagrant.rb
127
+ - lib/chef/sugar/version.rb
128
+ - lib/chef/sugar/virtualization.rb
129
+ - libraries/chef-sugar.rb
130
+ - metadata.rb
131
+ - recipes/default.rb
132
+ - spec/spec_helper.rb
133
+ - spec/support/shared_examples.rb
134
+ - spec/unit/chef/sugar/architecture_spec.rb
135
+ - spec/unit/chef/sugar/cloud_spec.rb
136
+ - spec/unit/chef/sugar/constraints_spec.rb
137
+ - spec/unit/chef/sugar/core_extensions/array_spec.rb
138
+ - spec/unit/chef/sugar/core_extensions/object_spec.rb
139
+ - spec/unit/chef/sugar/core_extensions/string_spec.rb
140
+ - spec/unit/chef/sugar/data_bag_spec.rb
141
+ - spec/unit/chef/sugar/docker_spec.rb
142
+ - spec/unit/chef/sugar/init_spec.rb
143
+ - spec/unit/chef/sugar/ip_spec.rb
144
+ - spec/unit/chef/sugar/kernel_spec.rb
145
+ - spec/unit/chef/sugar/kitchen_spec.rb
146
+ - spec/unit/chef/sugar/node_spec.rb
147
+ - spec/unit/chef/sugar/platform_family_spec.rb
148
+ - spec/unit/chef/sugar/platform_spec.rb
149
+ - spec/unit/chef/sugar/ruby_spec.rb
150
+ - spec/unit/chef/sugar/run_context_spec.rb
151
+ - spec/unit/chef/sugar/shell_spec.rb
152
+ - spec/unit/chef/sugar/vagrant_spec.rb
153
+ - spec/unit/chef/sugar/virtualization_spec.rb
154
+ - spec/unit/recipes/default_spec.rb
155
+ homepage: https://github.com/chef/chef-sugar
156
+ licenses:
157
+ - Apache 2.0
158
+ metadata: {}
159
+ post_install_message:
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 2.2.2
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubygems_version: 3.0.3
175
+ signing_key:
176
+ specification_version: 4
177
+ summary: A collection of helper methods and modules that make working with Chef recipes
178
+ awesome.
179
+ test_files:
180
+ - spec/spec_helper.rb
181
+ - spec/support/shared_examples.rb
182
+ - spec/unit/chef/sugar/architecture_spec.rb
183
+ - spec/unit/chef/sugar/cloud_spec.rb
184
+ - spec/unit/chef/sugar/constraints_spec.rb
185
+ - spec/unit/chef/sugar/core_extensions/array_spec.rb
186
+ - spec/unit/chef/sugar/core_extensions/object_spec.rb
187
+ - spec/unit/chef/sugar/core_extensions/string_spec.rb
188
+ - spec/unit/chef/sugar/data_bag_spec.rb
189
+ - spec/unit/chef/sugar/docker_spec.rb
190
+ - spec/unit/chef/sugar/init_spec.rb
191
+ - spec/unit/chef/sugar/ip_spec.rb
192
+ - spec/unit/chef/sugar/kernel_spec.rb
193
+ - spec/unit/chef/sugar/kitchen_spec.rb
194
+ - spec/unit/chef/sugar/node_spec.rb
195
+ - spec/unit/chef/sugar/platform_family_spec.rb
196
+ - spec/unit/chef/sugar/platform_spec.rb
197
+ - spec/unit/chef/sugar/ruby_spec.rb
198
+ - spec/unit/chef/sugar/run_context_spec.rb
199
+ - spec/unit/chef/sugar/shell_spec.rb
200
+ - spec/unit/chef/sugar/vagrant_spec.rb
201
+ - spec/unit/chef/sugar/virtualization_spec.rb
202
+ - spec/unit/recipes/default_spec.rb