chef-sugar 1.1.0 → 1.2.0.beta.1
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 +4 -4
- data/.gitignore +3 -0
- data/LICENSE +1 -1
- data/README.md +91 -1
- data/Rakefile +6 -0
- data/chef-extensions.gemspec +3 -6
- data/lib/chef/sugar.rb +5 -1
- data/lib/chef/sugar/architecture.rb +1 -1
- data/lib/chef/sugar/cloud.rb +1 -1
- data/lib/chef/sugar/constraints.rb +161 -0
- data/lib/chef/sugar/core_extensions.rb +18 -0
- data/lib/chef/sugar/core_extensions/array.rb +34 -0
- data/lib/chef/sugar/core_extensions/string.rb +49 -0
- data/lib/chef/sugar/data_bag.rb +34 -9
- data/lib/chef/sugar/ip.rb +1 -1
- data/lib/chef/sugar/kernel.rb +49 -0
- data/lib/chef/sugar/node.rb +157 -1
- data/lib/chef/sugar/platform.rb +1 -1
- data/lib/chef/sugar/platform_family.rb +1 -1
- data/lib/chef/sugar/ruby.rb +1 -1
- data/lib/chef/sugar/shell.rb +1 -1
- data/lib/chef/sugar/vagrant.rb +1 -1
- data/lib/chef/sugar/version.rb +2 -2
- data/metadata.rb +1 -1
- data/recipes/default.rb +2 -2
- data/spec/spec_helper.rb +3 -0
- data/spec/support/shared_examples.rb +1 -1
- data/spec/unit/chef/{extensions → sugar}/architecture_spec.rb +0 -0
- data/spec/unit/chef/{extensions → sugar}/cloud_spec.rb +0 -0
- data/spec/unit/chef/sugar/constraints_spec.rb +43 -0
- data/spec/unit/chef/sugar/core_extensions/array_spec.rb +10 -0
- data/spec/unit/chef/sugar/core_extensions/string_spec.rb +16 -0
- data/spec/unit/chef/{extensions → sugar}/data_bag_spec.rb +23 -4
- data/spec/unit/chef/{extensions → sugar}/ip_spec.rb +0 -0
- data/spec/unit/chef/sugar/kernel_spec.rb +16 -0
- data/spec/unit/chef/sugar/node_spec.rb +117 -0
- data/spec/unit/chef/{extensions → sugar}/platform_family_spec.rb +0 -0
- data/spec/unit/chef/{extensions → sugar}/platform_spec.rb +0 -0
- data/spec/unit/chef/{extensions → sugar}/ruby_spec.rb +0 -0
- data/spec/unit/chef/{extensions → sugar}/shell_spec.rb +0 -0
- data/spec/unit/chef/{extensions → sugar}/vagrant_spec.rb +0 -0
- metadata +45 -61
- data/.kitchen.yml +0 -16
- data/recipes/development.rb +0 -65
- data/spec/unit/chef/extensions/node_spec.rb +0 -30
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,7 @@ module RSpec
|
|
8
8
|
|
9
9
|
described_class.instance_methods.each do |name|
|
10
10
|
it "defines a `#{name}` DSL method" do
|
11
|
-
expect(Chef::Sugar::DSL
|
11
|
+
expect(Chef::Sugar::DSL).to be_method_defined(name)
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'has n-1 arity from the parent method' do
|
File without changes
|
File without changes
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chef::Sugar::Constraints do
|
4
|
+
# it_behaves_like 'a chef sugar'
|
5
|
+
|
6
|
+
describe '#version' do
|
7
|
+
let(:version) { described_class.version('1.2.3') }
|
8
|
+
|
9
|
+
it 'returns a new version object' do
|
10
|
+
expect(version).to be_a(Chef::Sugar::Constraints::Version)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'returns true with the version is satisifed' do
|
14
|
+
expect(version).to be_satisfies('~> 1.2.0')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'returns false when the version is not satisfed' do
|
18
|
+
expect(version).to_not be_satisfies('~> 2.0.0')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#constraint' do
|
23
|
+
let(:constraint) { described_class.constraint('~> 1.2.0') }
|
24
|
+
|
25
|
+
it 'returns a new constraint object' do
|
26
|
+
expect(constraint).to be_a(Chef::Sugar::Constraints::Constraint)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns true when the constraint is satisfied' do
|
30
|
+
expect(constraint).to be_satisfied_by('1.2.3')
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'returns false when the constraint is not satisfied' do
|
34
|
+
expect(constraint).to_not be_satisfied_by('2.0.0')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '#chef_version' do
|
39
|
+
it 'is a DSL method' do
|
40
|
+
expect(Chef::Sugar::DSL).to be_method_defined(:chef_version)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'chef/sugar/core_extensions'
|
3
|
+
|
4
|
+
describe String do
|
5
|
+
describe '#satisfies?' do
|
6
|
+
it 'includes the method' do
|
7
|
+
expect(described_class).to be_method_defined(:satisfies?)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#satisfied_by?' do
|
12
|
+
it 'includes the method' do
|
13
|
+
expect(described_class).to be_method_defined(:satisfied_by?)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -6,9 +6,28 @@ describe Chef::Sugar::DataBag do
|
|
6
6
|
|
7
7
|
it 'loads the encrypted data bag item' do
|
8
8
|
expect(Chef::EncryptedDataBagItem).to receive(:load)
|
9
|
-
.with('accounts', 'github')
|
9
|
+
.with('accounts', 'github', 'secret_key')
|
10
10
|
|
11
|
-
described_class.encrypted_data_bag_item('accounts', 'github')
|
11
|
+
described_class.encrypted_data_bag_item('accounts', 'github', 'secret_key')
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'when Chef::Config is set' do
|
15
|
+
it 'loads the secret key from the Chef::Config' do
|
16
|
+
Chef::Config.stub(:[]).with(:encrypted_data_bag_secret).and_return('B@c0n')
|
17
|
+
|
18
|
+
expect(Chef::EncryptedDataBagItem).to receive(:load)
|
19
|
+
.with('accounts', 'github', 'B@c0n')
|
20
|
+
|
21
|
+
described_class.encrypted_data_bag_item('accounts', 'github')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when Chef::Config is not set and no value is given' do
|
26
|
+
it 'raises an exception' do
|
27
|
+
expect {
|
28
|
+
described_class.encrypted_data_bag_item('accounts', 'github')
|
29
|
+
}.to raise_error(Chef::Sugar::DataBag::EncryptedDataBagSecretNotGiven)
|
30
|
+
end
|
12
31
|
end
|
13
32
|
end
|
14
33
|
|
@@ -24,7 +43,7 @@ describe Chef::Sugar::DataBag do
|
|
24
43
|
}
|
25
44
|
)
|
26
45
|
|
27
|
-
expect(described_class.encrypted_data_bag_item_for_environment(node, 'accounts', 'github')).to eq(
|
46
|
+
expect(described_class.encrypted_data_bag_item_for_environment(node, 'accounts', 'github', 'secret_key')).to eq(
|
28
47
|
'password' => 'bacon',
|
29
48
|
'username' => 'sethvargo',
|
30
49
|
)
|
@@ -44,7 +63,7 @@ describe Chef::Sugar::DataBag do
|
|
44
63
|
}
|
45
64
|
)
|
46
65
|
|
47
|
-
expect(described_class.encrypted_data_bag_item_for_environment(node, 'accounts', 'github')).to eq(
|
66
|
+
expect(described_class.encrypted_data_bag_item_for_environment(node, 'accounts', 'github', 'secret_key')).to eq(
|
48
67
|
'password' => 'ham',
|
49
68
|
'username' => 'schisamo',
|
50
69
|
)
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chef::Sugar::Kernel do
|
4
|
+
describe '.require_chef_gem' do
|
5
|
+
it 'raises an exception when the gem is not installed' do
|
6
|
+
expect {
|
7
|
+
described_class.require_chef_gem('bacon')
|
8
|
+
}.to raise_error(Chef::Sugar::Kernel::ChefGemLoadError)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'loads the gem' do
|
12
|
+
Chef::Sugar::Kernel.stub(:require).and_return(true)
|
13
|
+
expect(described_class.require_chef_gem('bacon')).to be_true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chef::Node do
|
4
|
+
describe '#in?' do
|
5
|
+
it 'returns true when the node is in the environment' do
|
6
|
+
subject.stub(:chef_environment).and_return('production')
|
7
|
+
expect(subject.in?('production')).to be_true
|
8
|
+
expect(subject.in?(/production$/)).to be_true
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns false when the node is not in the environment' do
|
12
|
+
subject.stub(:chef_environment).and_return('staging')
|
13
|
+
expect(subject.in?('production')).to be_false
|
14
|
+
expect(subject.in?(/production$/)).to be_false
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#includes_recipe?' do
|
19
|
+
it 'returns true when the recipe exists' do
|
20
|
+
subject.stub(:run_list).and_return(['recipe[magic::recipe]'])
|
21
|
+
expect(subject.includes_recipe?('recipe[magic::recipe]')).to be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'returns false when the recipe does
|
25
|
+
not exist' do
|
26
|
+
subject.stub(:run_list).and_return([])
|
27
|
+
expect(subject.includes_recipe?('recipe[magic::recipe]')).to be_false
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#deep_fetch' do
|
32
|
+
let(:node) { described_class.new }
|
33
|
+
before { node.default['apache2']['config']['root'] = '/var/www' }
|
34
|
+
|
35
|
+
it 'fetches a deeply nested attribute' do
|
36
|
+
expect(node.deep_fetch('apache2', 'config', 'root')).to eq('/var/www')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'ignores symbols, strings, etc' do
|
40
|
+
expect(node.deep_fetch(:apache2, :config, :root)).to eq('/var/www')
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'safely returns nil if a key does not exist' do
|
44
|
+
expect(node.deep_fetch(:apache2, :not_real, :nested, :yup)).to be_nil
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#deep_fetch!' do
|
49
|
+
let(:node) { described_class.new }
|
50
|
+
before { node.default['apache2']['config']['root'] = '/var/www' }
|
51
|
+
|
52
|
+
it 'fetches a deeply nested attribute' do
|
53
|
+
expect(node.deep_fetch!('apache2', 'config', 'root')).to eq('/var/www')
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'ignores symbols, strings, etc' do
|
57
|
+
expect(node.deep_fetch!(:apache2, :config, :root)).to eq('/var/www')
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'raises an error if a key does not exist' do
|
61
|
+
expect {
|
62
|
+
node.deep_fetch!(:apache2, :not_real, :nested, :yup)
|
63
|
+
}.to raise_error(Chef::Node::AttributeDoesNotExistError)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe '#namespace' do
|
68
|
+
let(:node) { described_class.new }
|
69
|
+
|
70
|
+
it 'defines the attributes' do
|
71
|
+
node.instance_eval do
|
72
|
+
namespace 'apache2' do
|
73
|
+
namespace 'config' do
|
74
|
+
root '/var/www'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
expect(node.default).to eq({
|
80
|
+
'apache2' => {
|
81
|
+
'config' => { 'root' => '/var/www' }
|
82
|
+
}
|
83
|
+
})
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'accepts multiple attributes' do
|
87
|
+
node.instance_eval do
|
88
|
+
namespace 'apache2', 'config' do
|
89
|
+
root '/var/www'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
expect(node.default).to eq({
|
94
|
+
'apache2' => {
|
95
|
+
'config' => { 'root' => '/var/www' }
|
96
|
+
}
|
97
|
+
})
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'accepts attribute precedence levels' do
|
101
|
+
node.instance_eval do
|
102
|
+
namespace 'apache2', precedence: normal do
|
103
|
+
namespace 'config', precedence: override do
|
104
|
+
root '/var/www'
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
expect(node.override).to eq({
|
110
|
+
'apache2' => {
|
111
|
+
'config' => { 'root' => '/var/www' }
|
112
|
+
}
|
113
|
+
})
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-sugar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Vargo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,33 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: stove
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.0.0.beta
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '2.11'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '2.11'
|
54
|
+
version: 2.0.0.beta
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: chefspec
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,33 +67,19 @@ dependencies:
|
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '3.0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: coveralls
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - ~>
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
75
|
+
version: '0.7'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - ~>
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: kitchen-vagrant
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0.14'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0.14'
|
82
|
+
version: '0.7'
|
111
83
|
description: A series of helpful sugar of the Chef core and other resources to make
|
112
84
|
a cleaner, more lean recipe DSL, enforce DRY principles, and make writing Chef recipes
|
113
85
|
an awesome experience!
|
@@ -118,7 +90,6 @@ extensions: []
|
|
118
90
|
extra_rdoc_files: []
|
119
91
|
files:
|
120
92
|
- .gitignore
|
121
|
-
- .kitchen.yml
|
122
93
|
- .travis.yml
|
123
94
|
- CHANGELOG.md
|
124
95
|
- CONTRIBUTING.md
|
@@ -130,9 +101,14 @@ files:
|
|
130
101
|
- lib/chef/sugar.rb
|
131
102
|
- lib/chef/sugar/architecture.rb
|
132
103
|
- lib/chef/sugar/cloud.rb
|
104
|
+
- lib/chef/sugar/constraints.rb
|
105
|
+
- lib/chef/sugar/core_extensions.rb
|
106
|
+
- lib/chef/sugar/core_extensions/array.rb
|
107
|
+
- lib/chef/sugar/core_extensions/string.rb
|
133
108
|
- lib/chef/sugar/data_bag.rb
|
134
109
|
- lib/chef/sugar/filters.rb
|
135
110
|
- lib/chef/sugar/ip.rb
|
111
|
+
- lib/chef/sugar/kernel.rb
|
136
112
|
- lib/chef/sugar/node.rb
|
137
113
|
- lib/chef/sugar/platform.rb
|
138
114
|
- lib/chef/sugar/platform_family.rb
|
@@ -142,19 +118,22 @@ files:
|
|
142
118
|
- lib/chef/sugar/version.rb
|
143
119
|
- metadata.rb
|
144
120
|
- recipes/default.rb
|
145
|
-
- recipes/development.rb
|
146
121
|
- spec/spec_helper.rb
|
147
122
|
- spec/support/shared_examples.rb
|
148
|
-
- spec/unit/chef/
|
149
|
-
- spec/unit/chef/
|
150
|
-
- spec/unit/chef/
|
151
|
-
- spec/unit/chef/
|
152
|
-
- spec/unit/chef/
|
153
|
-
- spec/unit/chef/
|
154
|
-
- spec/unit/chef/
|
155
|
-
- spec/unit/chef/
|
156
|
-
- spec/unit/chef/
|
157
|
-
- spec/unit/chef/
|
123
|
+
- spec/unit/chef/sugar/architecture_spec.rb
|
124
|
+
- spec/unit/chef/sugar/cloud_spec.rb
|
125
|
+
- spec/unit/chef/sugar/constraints_spec.rb
|
126
|
+
- spec/unit/chef/sugar/core_extensions/array_spec.rb
|
127
|
+
- spec/unit/chef/sugar/core_extensions/string_spec.rb
|
128
|
+
- spec/unit/chef/sugar/data_bag_spec.rb
|
129
|
+
- spec/unit/chef/sugar/ip_spec.rb
|
130
|
+
- spec/unit/chef/sugar/kernel_spec.rb
|
131
|
+
- spec/unit/chef/sugar/node_spec.rb
|
132
|
+
- spec/unit/chef/sugar/platform_family_spec.rb
|
133
|
+
- spec/unit/chef/sugar/platform_spec.rb
|
134
|
+
- spec/unit/chef/sugar/ruby_spec.rb
|
135
|
+
- spec/unit/chef/sugar/shell_spec.rb
|
136
|
+
- spec/unit/chef/sugar/vagrant_spec.rb
|
158
137
|
- spec/unit/recipes/default_spec.rb
|
159
138
|
homepage: https://github.com/sethvargo/chef-sugar
|
160
139
|
licenses:
|
@@ -171,12 +150,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
171
150
|
version: '1.9'
|
172
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
152
|
requirements:
|
174
|
-
- - '
|
153
|
+
- - '>'
|
175
154
|
- !ruby/object:Gem::Version
|
176
|
-
version:
|
155
|
+
version: 1.3.1
|
177
156
|
requirements: []
|
178
157
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.
|
158
|
+
rubygems_version: 2.2.1
|
180
159
|
signing_key:
|
181
160
|
specification_version: 4
|
182
161
|
summary: A collection of helper methods and modules that make working with Chef recipes
|
@@ -184,14 +163,19 @@ summary: A collection of helper methods and modules that make working with Chef
|
|
184
163
|
test_files:
|
185
164
|
- spec/spec_helper.rb
|
186
165
|
- spec/support/shared_examples.rb
|
187
|
-
- spec/unit/chef/
|
188
|
-
- spec/unit/chef/
|
189
|
-
- spec/unit/chef/
|
190
|
-
- spec/unit/chef/
|
191
|
-
- spec/unit/chef/
|
192
|
-
- spec/unit/chef/
|
193
|
-
- spec/unit/chef/
|
194
|
-
- spec/unit/chef/
|
195
|
-
- spec/unit/chef/
|
196
|
-
- spec/unit/chef/
|
166
|
+
- spec/unit/chef/sugar/architecture_spec.rb
|
167
|
+
- spec/unit/chef/sugar/cloud_spec.rb
|
168
|
+
- spec/unit/chef/sugar/constraints_spec.rb
|
169
|
+
- spec/unit/chef/sugar/core_extensions/array_spec.rb
|
170
|
+
- spec/unit/chef/sugar/core_extensions/string_spec.rb
|
171
|
+
- spec/unit/chef/sugar/data_bag_spec.rb
|
172
|
+
- spec/unit/chef/sugar/ip_spec.rb
|
173
|
+
- spec/unit/chef/sugar/kernel_spec.rb
|
174
|
+
- spec/unit/chef/sugar/node_spec.rb
|
175
|
+
- spec/unit/chef/sugar/platform_family_spec.rb
|
176
|
+
- spec/unit/chef/sugar/platform_spec.rb
|
177
|
+
- spec/unit/chef/sugar/ruby_spec.rb
|
178
|
+
- spec/unit/chef/sugar/shell_spec.rb
|
179
|
+
- spec/unit/chef/sugar/vagrant_spec.rb
|
197
180
|
- spec/unit/recipes/default_spec.rb
|
181
|
+
has_rdoc:
|