poise 2.7.2 → 2.8.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 +4 -4
- data/.gitignore +2 -2
- data/.travis.yml +61 -26
- data/.yardopts +2 -0
- data/.yo-rc.json +7 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +1 -1
- data/LICENSE +201 -202
- data/lib/poise.rb +1 -1
- data/lib/poise/helpers/option_collector.rb +2 -0
- data/lib/poise/helpers/resource_subclass.rb +5 -1
- data/lib/poise/version.rb +1 -1
- data/poise.gemspec +3 -1
- data/test/cookbook/libraries/app.rb +24 -17
- data/test/cookbook/libraries/app_config.rb +28 -20
- data/test/gemfiles/chef-12.0.gemfile +4 -0
- data/test/gemfiles/chef-12.1.gemfile +4 -0
- data/test/gemfiles/chef-12.10.gemfile +4 -0
- data/test/gemfiles/chef-12.11.gemfile +4 -0
- data/test/gemfiles/chef-12.12.gemfile +22 -0
- data/test/gemfiles/chef-12.13.gemfile +22 -0
- data/test/gemfiles/chef-12.14.gemfile +19 -0
- data/test/gemfiles/chef-12.15.gemfile +19 -0
- data/test/gemfiles/chef-12.16.gemfile +19 -0
- data/test/gemfiles/chef-12.17.gemfile +19 -0
- data/test/gemfiles/chef-12.18.gemfile +19 -0
- data/test/gemfiles/chef-12.19.gemfile +19 -0
- data/test/gemfiles/chef-12.2.gemfile +4 -0
- data/test/gemfiles/chef-12.3.gemfile +4 -0
- data/test/gemfiles/chef-12.4.gemfile +5 -2
- data/test/gemfiles/chef-12.5.gemfile +4 -0
- data/test/gemfiles/chef-12.6.gemfile +4 -0
- data/test/gemfiles/chef-12.7.gemfile +4 -0
- data/test/gemfiles/chef-12.8.gemfile +4 -0
- data/test/gemfiles/chef-12.9.gemfile +4 -0
- data/test/gemfiles/chef-12.gemfile +1 -1
- data/test/gemfiles/chef-13.0.gemfile +19 -0
- data/test/gemfiles/chef-13.gemfile +19 -0
- data/test/gemfiles/master.gemfile +8 -4
- data/test/spec/helpers/fused_spec.rb +4 -1
- data/test/spec/helpers/inversion_spec.rb +51 -48
- data/test/spec/helpers/option_collector_spec.rb +25 -3
- data/test/spec/helpers/resource_cloning_spec.rb +9 -7
- data/test/spec/utils_spec.rb +29 -17
- metadata +47 -5
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2017, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 13.0.118'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2017, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 13.0'
|
@@ -16,7 +16,11 @@
|
|
16
16
|
|
17
17
|
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
18
|
|
19
|
-
gem 'chef',
|
20
|
-
gem '
|
21
|
-
gem '
|
22
|
-
gem '
|
19
|
+
gem 'chef', git: 'https://github.com/chef/chef.git'
|
20
|
+
gem 'chefspec', git: 'https://github.com/sethvargo/chefspec.git'
|
21
|
+
gem 'fauxhai', git: 'https://github.com/customink/fauxhai.git'
|
22
|
+
gem 'foodcritic', git: 'https://github.com/foodcritic/foodcritic.git'
|
23
|
+
gem 'halite', git: 'https://github.com/poise/halite.git'
|
24
|
+
gem 'ohai', git: 'https://github.com/chef/ohai.git'
|
25
|
+
gem 'poise-boiler', git: 'https://github.com/poise/poise-boiler.git'
|
26
|
+
gem 'poise-profiler', git: 'https://github.com/poise/poise-profiler.git'
|
@@ -80,9 +80,12 @@ describe Poise::Helpers::Fused do
|
|
80
80
|
ruby_block 'explicit'
|
81
81
|
end
|
82
82
|
end
|
83
|
+
before do
|
84
|
+
stub_const('PoiseExplicitProvider', provider(:poise_test2))
|
85
|
+
end
|
83
86
|
recipe do
|
84
87
|
poise_test 'test' do
|
85
|
-
provider
|
88
|
+
provider PoiseExplicitProvider
|
86
89
|
end
|
87
90
|
end
|
88
91
|
|
@@ -272,36 +272,50 @@ describe Poise::Helpers::Inversion do
|
|
272
272
|
end # /describe .resolve_inversion_provider
|
273
273
|
|
274
274
|
describe 'provider resolution' do
|
275
|
+
# Declare these deirectly (i.e. without the helpers) because the
|
276
|
+
# subclass_providers test requires they exist at declaration time.
|
277
|
+
module InversionProviderResolution
|
278
|
+
class Resource < Chef::Resource
|
279
|
+
include Poise
|
280
|
+
provides(:inversion_provider_resolution)
|
281
|
+
attribute(:provider_no_auto, default: [])
|
282
|
+
end
|
283
|
+
class Provider < Chef::Provider
|
284
|
+
include Poise::Helpers::Inversion::Provider
|
285
|
+
inversion_resource(:inversion_provider_resolution)
|
286
|
+
inversion_attribute([])
|
287
|
+
provides(:inverted)
|
288
|
+
def self.provides_auto?(*args); true; end
|
289
|
+
end
|
290
|
+
class OtherProvider < Provider
|
291
|
+
provides(:other)
|
292
|
+
end
|
293
|
+
Chef::Platform::ProviderPriorityMap.instance.priority(:inversion_provider_resolution, [Provider, OtherProvider])
|
294
|
+
class ResourceSub < Resource
|
295
|
+
provides(:inversion_provider_resolution_sub)
|
296
|
+
end
|
297
|
+
class ResourceSub2 < Resource
|
298
|
+
include Poise::Helpers::ResourceSubclass
|
299
|
+
provides(:inversion_provider_resolution_sub2)
|
300
|
+
subclass_providers!
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
275
304
|
before do
|
276
305
|
default_attributes['poise'] ||= {}
|
277
306
|
default_attributes['poise']['provider'] = 'auto'
|
278
307
|
end
|
279
|
-
resource(:poise_test_inversion, step_into: false) do
|
280
|
-
include Poise
|
281
|
-
provides(:poise_test_inversion)
|
282
|
-
attribute(:provider_no_auto, default: [])
|
283
|
-
end
|
284
|
-
provider(:poise_test_inversion) do
|
285
|
-
include described_class
|
286
|
-
inversion_resource(:poise_test_inversion)
|
287
|
-
inversion_attribute([])
|
288
|
-
provides(:inverted)
|
289
|
-
def self.provides_auto?(*args); true; end
|
290
|
-
end
|
291
|
-
provider(:poise_test_inversion_other, parent: :poise_test_inversion) do
|
292
|
-
provides(:other)
|
293
|
-
end
|
294
308
|
let(:test_resource) { nil }
|
295
309
|
subject { Chef::ProviderResolver.new(chef_run.node, test_resource, :run) }
|
296
310
|
|
297
311
|
context 'with an inversion resource' do
|
298
312
|
recipe(subject: false) do
|
299
|
-
|
313
|
+
inversion_provider_resolution 'test'
|
300
314
|
end
|
301
|
-
let(:test_resource) { chef_run.
|
315
|
+
let(:test_resource) { chef_run.inversion_provider_resolution('test') }
|
302
316
|
|
303
|
-
its(:enabled_handlers) { is_expected.to
|
304
|
-
its(:resolve) { is_expected.to eq
|
317
|
+
its(:enabled_handlers) { is_expected.to contain_exactly(InversionProviderResolution::Provider, InversionProviderResolution::OtherProvider) }
|
318
|
+
its(:resolve) { is_expected.to eq InversionProviderResolution::Provider }
|
305
319
|
end # /context with an inversion resource
|
306
320
|
|
307
321
|
context 'with a resource that has no providers' do
|
@@ -315,60 +329,49 @@ describe Poise::Helpers::Inversion do
|
|
315
329
|
it { expect { subject.resolve }.to raise_error defined?(Chef::Exceptions::ProviderNotFound) ? Chef::Exceptions::ProviderNotFound : ArgumentError }
|
316
330
|
end # /context with a resource that has no providers
|
317
331
|
|
318
|
-
context 'with
|
319
|
-
resource(:poise_inversion_sub, parent: :poise_test_inversion, step_into: false) do
|
320
|
-
provides(:poise_inversion_sub)
|
321
|
-
end
|
332
|
+
context 'with an incorrectly subclassed resource' do
|
322
333
|
recipe(subject: false) do
|
323
|
-
|
334
|
+
inversion_provider_resolution_sub 'test'
|
324
335
|
end
|
325
|
-
let(:test_resource) { chef_run.find_resource(:
|
336
|
+
let(:test_resource) { chef_run.find_resource(:inversion_provider_resolution_sub, 'test') }
|
326
337
|
|
327
338
|
its(:enabled_handlers) { is_expected.to eq [] }
|
328
339
|
it { expect { subject.resolve }.to raise_error defined?(Chef::Exceptions::ProviderNotFound) ? Chef::Exceptions::ProviderNotFound : ArgumentError }
|
329
|
-
end # /context with
|
340
|
+
end # /context with an incorrectly subclassed resource
|
330
341
|
|
331
342
|
context 'with a subclassed resource using subclass_providers!' do
|
332
|
-
resource(:poise_inversion_subproviders, parent: :poise_test_inversion, step_into: false) do
|
333
|
-
include Poise::Helpers::ResourceSubclass
|
334
|
-
provides(:poise_inversion_subproviders)
|
335
|
-
subclass_providers!
|
336
|
-
end
|
337
343
|
recipe(subject: false) do
|
338
|
-
|
344
|
+
inversion_provider_resolution_sub2 'test'
|
339
345
|
end
|
340
|
-
let(:test_resource) { chef_run.find_resource(:
|
346
|
+
let(:test_resource) { chef_run.find_resource(:inversion_provider_resolution_sub2, 'test') }
|
341
347
|
|
342
|
-
its(:enabled_handlers) { is_expected.to
|
343
|
-
its(:resolve) { is_expected.to eq
|
348
|
+
# its(:enabled_handlers) { is_expected.to contain_exactly(InversionProviderResolution::Provider, InversionProviderResolution::OtherProvider) }
|
349
|
+
its(:resolve) { is_expected.to eq InversionProviderResolution::Provider }
|
344
350
|
end # /context with a subclassed resource using subclass_providers!
|
345
351
|
|
346
352
|
context 'with provider_no_auto' do
|
347
353
|
recipe(subject: false) do
|
348
|
-
|
354
|
+
inversion_provider_resolution 'test' do
|
349
355
|
provider_no_auto %w{inverted}
|
350
356
|
end
|
351
357
|
end
|
352
|
-
let(:test_resource) { chef_run.
|
358
|
+
let(:test_resource) { chef_run.inversion_provider_resolution('test') }
|
353
359
|
|
354
|
-
its(:resolve) { is_expected.to eq
|
360
|
+
its(:resolve) { is_expected.to eq InversionProviderResolution::OtherProvider }
|
355
361
|
end # /context with provider_no_auto
|
356
362
|
|
357
363
|
context 'with a symbol provider via options' do
|
358
|
-
provider(:poise_test_inversion_subclass, parent: :poise_test_inversion) do
|
359
|
-
provides(:inverted_subclass)
|
360
|
-
end
|
361
364
|
recipe(subject: false) do
|
362
365
|
node.run_state['poise_inversion'] ||= {}
|
363
|
-
node.run_state['poise_inversion'][:
|
364
|
-
node.run_state['poise_inversion'][:
|
365
|
-
node.run_state['poise_inversion'][:
|
366
|
-
node.run_state['poise_inversion'][:
|
367
|
-
|
366
|
+
node.run_state['poise_inversion'][:inversion_provider_resolution] ||= {}
|
367
|
+
node.run_state['poise_inversion'][:inversion_provider_resolution]['test'] ||= {}
|
368
|
+
node.run_state['poise_inversion'][:inversion_provider_resolution]['test']['*'] ||= {}
|
369
|
+
node.run_state['poise_inversion'][:inversion_provider_resolution]['test']['*']['provider'] = :other
|
370
|
+
inversion_provider_resolution 'test'
|
368
371
|
end
|
369
|
-
let(:test_resource) { chef_run.
|
372
|
+
let(:test_resource) { chef_run.inversion_provider_resolution('test') }
|
370
373
|
|
371
|
-
its(:resolve) { is_expected.to eq
|
374
|
+
its(:resolve) { is_expected.to eq InversionProviderResolution::OtherProvider }
|
372
375
|
end # /context with a symbol provider via options
|
373
376
|
end # /describe provider resolution
|
374
377
|
end # /describe Poise::Helpers::Inversion::Provider
|
@@ -137,10 +137,17 @@ describe Poise::Helpers::OptionCollector do
|
|
137
137
|
end # /describe parser
|
138
138
|
|
139
139
|
describe 'forced_keys' do
|
140
|
+
resource(:poise_test) do
|
141
|
+
include described_class
|
142
|
+
def foo(*args)
|
143
|
+
'foo'
|
144
|
+
end
|
145
|
+
attribute(:options, option_collector: true)
|
146
|
+
end
|
140
147
|
recipe do
|
141
148
|
poise_test 'test' do
|
142
149
|
options do
|
143
|
-
|
150
|
+
foo 'bar'
|
144
151
|
end
|
145
152
|
end
|
146
153
|
end
|
@@ -152,9 +159,24 @@ describe Poise::Helpers::OptionCollector do
|
|
152
159
|
context 'with forced_keys' do
|
153
160
|
resource(:poise_test) do
|
154
161
|
include described_class
|
155
|
-
|
162
|
+
def foo(*args)
|
163
|
+
'foo'
|
164
|
+
end
|
165
|
+
attribute(:options, option_collector: true, forced_keys: %i{foo})
|
166
|
+
end
|
167
|
+
it { is_expected.to run_poise_test('test').with(options: {'foo' => 'bar'}) }
|
168
|
+
end # /context with forced_keys
|
169
|
+
|
170
|
+
context 'with implicit forced_keys' do
|
171
|
+
recipe do
|
172
|
+
poise_test 'test' do
|
173
|
+
options do
|
174
|
+
name 'bar'
|
175
|
+
end
|
176
|
+
end
|
156
177
|
end
|
157
|
-
it { is_expected.to run_poise_test('test').with(options: {'name' => '
|
178
|
+
it { is_expected.to run_poise_test('test').with(options: {'name' => 'bar'}) }
|
179
|
+
it { is_expected.to_not run_poise_test('bar') }
|
158
180
|
end # /context with forced_keys
|
159
181
|
end # /describe forced_keys
|
160
182
|
|
@@ -33,13 +33,15 @@ describe Poise::Helpers::ResourceCloning do
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
if ::Gem::Requirement.create('< 13').satisfied_by?(::Gem::Version.create(Chef::VERSION))
|
37
|
+
context 'with a resource that should be cloned' do
|
38
|
+
# Baseline to make sure my test harness works.
|
39
|
+
it do
|
40
|
+
expect(Chef::Log).to receive(:warn).at_least(:once)
|
41
|
+
run_chef
|
42
|
+
end
|
43
|
+
end # /context with a resource that should be cloned
|
44
|
+
end
|
43
45
|
|
44
46
|
context 'a resource using the helper' do
|
45
47
|
resource(:poise_test) do
|
data/test/spec/utils_spec.rb
CHANGED
@@ -66,6 +66,18 @@ describe Poise::Utils do
|
|
66
66
|
let(:filename) { '/test/my_cookbook/libraries/default.rb' }
|
67
67
|
subject { described_class.find_cookbook_name(run_context, filename) }
|
68
68
|
|
69
|
+
def add_file(ver, segment, path)
|
70
|
+
# Use CookbookVersion#files_for as a feature test for ManifestV2. This
|
71
|
+
# can be changed to ::Gem::Requirement.create('>= 13').satisfied_by?(::Gem::Version.create(Chef::VERSION))
|
72
|
+
# once https://github.com/chef/chef/pull/5929 is merged.
|
73
|
+
if defined?(ver.files_for)
|
74
|
+
ver.all_files << path
|
75
|
+
ver.cookbook_manifest.reset!
|
76
|
+
else
|
77
|
+
ver.send("#{segment}_filenames") << path
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
69
81
|
context 'with no cookbooks' do
|
70
82
|
it { expect { subject }.to raise_error Poise::Error }
|
71
83
|
end # /context with no cookbooks
|
@@ -73,7 +85,7 @@ describe Poise::Utils do
|
|
73
85
|
context 'with one cookbook' do
|
74
86
|
before do
|
75
87
|
cookbooks << Chef::CookbookVersion.new('my_cookbook', '/test/my_cookbook').tap do |ver|
|
76
|
-
ver
|
88
|
+
add_file(ver, :library, '/test/my_cookbook/libraries/default.rb')
|
77
89
|
end
|
78
90
|
end
|
79
91
|
it { is_expected.to eq 'my_cookbook' }
|
@@ -82,12 +94,12 @@ describe Poise::Utils do
|
|
82
94
|
context 'with many cookbooks' do
|
83
95
|
before do
|
84
96
|
cookbooks << Chef::CookbookVersion.new('other_cookbook', '/test/other_cookbook').tap do |ver|
|
85
|
-
ver
|
86
|
-
ver
|
97
|
+
add_file(ver, :library, '/test/other_cookbook/libraries/default.rb')
|
98
|
+
add_file(ver, :recipe, '/test/other_cookbook/recipe/default.rb')
|
87
99
|
end
|
88
100
|
cookbooks << Chef::CookbookVersion.new('my_cookbook', '/test/my_cookbook').tap do |ver|
|
89
|
-
ver
|
90
|
-
ver
|
101
|
+
add_file(ver, :library, '/test/my_cookbook/libraries/default.rb')
|
102
|
+
add_file(ver, :recipe, '/test/my_cookbook/recipe/default.rb')
|
91
103
|
end
|
92
104
|
end
|
93
105
|
it { is_expected.to eq 'my_cookbook' }
|
@@ -96,11 +108,11 @@ describe Poise::Utils do
|
|
96
108
|
context 'with many non-matching cookbooks' do
|
97
109
|
before do
|
98
110
|
cookbooks << Chef::CookbookVersion.new('other_cookbook', '/test/other_cookbook').tap do |ver|
|
99
|
-
ver
|
100
|
-
ver
|
111
|
+
add_file(ver, :library, '/test/other_cookbook/libraries/default.rb')
|
112
|
+
add_file(ver, :recipe, '/test/other_cookbook/recipe/default.rb')
|
101
113
|
end
|
102
114
|
cookbooks << Chef::CookbookVersion.new('my_cookbook', '/test/my_cookbook').tap do |ver|
|
103
|
-
ver
|
115
|
+
add_file(ver, :recipe, '/test/my_cookbook/recipe/default.rb')
|
104
116
|
end
|
105
117
|
end
|
106
118
|
it { expect { subject }.to raise_error Poise::Error }
|
@@ -110,8 +122,8 @@ describe Poise::Utils do
|
|
110
122
|
let(:filename) { '/source/halite_cookbook/lib/something.rb' }
|
111
123
|
before do
|
112
124
|
cookbooks << Chef::CookbookVersion.new('other_cookbook', '/test/other_cookbook').tap do |ver|
|
113
|
-
ver
|
114
|
-
ver
|
125
|
+
add_file(ver, :library, '/test/other_cookbook/libraries/default.rb')
|
126
|
+
add_file(ver, :recipe, '/test/other_cookbook/recipe/default.rb')
|
115
127
|
end
|
116
128
|
cookbooks << Chef::CookbookVersion.new('halite_cookbook', '/test/halite_cookbook').tap do |ver|
|
117
129
|
def ver.halite_root
|
@@ -119,7 +131,7 @@ describe Poise::Utils do
|
|
119
131
|
end
|
120
132
|
end
|
121
133
|
cookbooks << Chef::CookbookVersion.new('my_cookbook', '/test/my_cookbook').tap do |ver|
|
122
|
-
ver
|
134
|
+
add_file(ver, :recipe, '/test/my_cookbook/recipe/default.rb')
|
123
135
|
end
|
124
136
|
end
|
125
137
|
it { is_expected.to eq 'halite_cookbook' }
|
@@ -129,8 +141,8 @@ describe Poise::Utils do
|
|
129
141
|
let(:filename) { '/source/halite_cookbook_other/lib/something.rb' }
|
130
142
|
before do
|
131
143
|
cookbooks << Chef::CookbookVersion.new('other_cookbook', '/test/other_cookbook').tap do |ver|
|
132
|
-
ver
|
133
|
-
ver
|
144
|
+
add_file(ver, :library, '/test/other_cookbook/libraries/default.rb')
|
145
|
+
add_file(ver, :recipe, '/test/other_cookbook/recipe/default.rb')
|
134
146
|
end
|
135
147
|
cookbooks << Chef::CookbookVersion.new('halite_cookbook', '/test/halite_cookbook').tap do |ver|
|
136
148
|
def ver.halite_root
|
@@ -143,7 +155,7 @@ describe Poise::Utils do
|
|
143
155
|
end
|
144
156
|
end
|
145
157
|
cookbooks << Chef::CookbookVersion.new('my_cookbook', '/test/my_cookbook').tap do |ver|
|
146
|
-
ver
|
158
|
+
add_file(ver, :recipe, '/test/my_cookbook/recipe/default.rb')
|
147
159
|
end
|
148
160
|
end
|
149
161
|
it { is_expected.to eq 'halite_cookbook_other' }
|
@@ -153,8 +165,8 @@ describe Poise::Utils do
|
|
153
165
|
let(:filename) { '/source/halite_cookbook/vendor/other/lib/something.rb' }
|
154
166
|
before do
|
155
167
|
cookbooks << Chef::CookbookVersion.new('other_cookbook', '/test/other_cookbook').tap do |ver|
|
156
|
-
ver
|
157
|
-
ver
|
168
|
+
add_file(ver, :library, '/test/other_cookbook/libraries/default.rb')
|
169
|
+
add_file(ver, :recipe, '/test/other_cookbook/recipe/default.rb')
|
158
170
|
end
|
159
171
|
cookbooks << Chef::CookbookVersion.new('halite_cookbook', '/test/halite_cookbook').tap do |ver|
|
160
172
|
def ver.halite_root
|
@@ -167,7 +179,7 @@ describe Poise::Utils do
|
|
167
179
|
end
|
168
180
|
end
|
169
181
|
cookbooks << Chef::CookbookVersion.new('my_cookbook', '/test/my_cookbook').tap do |ver|
|
170
|
-
ver
|
182
|
+
add_file(ver, :recipe, '/test/my_cookbook/recipe/default.rb')
|
171
183
|
end
|
172
184
|
end
|
173
185
|
it { is_expected.to eq 'halite_cookbook_other' }
|
metadata
CHANGED
@@ -1,15 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noah Kantrowitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: chef
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '12'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '14'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '12'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '14'
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: halite
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +98,7 @@ files:
|
|
78
98
|
- ".rubocop.yml"
|
79
99
|
- ".travis.yml"
|
80
100
|
- ".yardopts"
|
101
|
+
- ".yo-rc.json"
|
81
102
|
- CHANGELOG.md
|
82
103
|
- Gemfile
|
83
104
|
- LICENSE
|
@@ -134,6 +155,14 @@ files:
|
|
134
155
|
- test/gemfiles/chef-12.1.gemfile
|
135
156
|
- test/gemfiles/chef-12.10.gemfile
|
136
157
|
- test/gemfiles/chef-12.11.gemfile
|
158
|
+
- test/gemfiles/chef-12.12.gemfile
|
159
|
+
- test/gemfiles/chef-12.13.gemfile
|
160
|
+
- test/gemfiles/chef-12.14.gemfile
|
161
|
+
- test/gemfiles/chef-12.15.gemfile
|
162
|
+
- test/gemfiles/chef-12.16.gemfile
|
163
|
+
- test/gemfiles/chef-12.17.gemfile
|
164
|
+
- test/gemfiles/chef-12.18.gemfile
|
165
|
+
- test/gemfiles/chef-12.19.gemfile
|
137
166
|
- test/gemfiles/chef-12.2.gemfile
|
138
167
|
- test/gemfiles/chef-12.3.gemfile
|
139
168
|
- test/gemfiles/chef-12.4.gemfile
|
@@ -143,6 +172,8 @@ files:
|
|
143
172
|
- test/gemfiles/chef-12.8.gemfile
|
144
173
|
- test/gemfiles/chef-12.9.gemfile
|
145
174
|
- test/gemfiles/chef-12.gemfile
|
175
|
+
- test/gemfiles/chef-13.0.gemfile
|
176
|
+
- test/gemfiles/chef-13.gemfile
|
146
177
|
- test/gemfiles/master.gemfile
|
147
178
|
- test/integration/default/default_spec.rb
|
148
179
|
- test/integration/default/inversion_spec.rb
|
@@ -182,8 +213,9 @@ files:
|
|
182
213
|
- test/spec/utils_spec.rb
|
183
214
|
homepage: https://github.com/poise/poise
|
184
215
|
licenses:
|
185
|
-
- Apache
|
186
|
-
metadata:
|
216
|
+
- Apache-2.0
|
217
|
+
metadata:
|
218
|
+
platforms: any
|
187
219
|
post_install_message:
|
188
220
|
rdoc_options: []
|
189
221
|
require_paths:
|
@@ -200,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
232
|
version: '0'
|
201
233
|
requirements: []
|
202
234
|
rubyforge_project:
|
203
|
-
rubygems_version: 2.6.
|
235
|
+
rubygems_version: 2.6.11
|
204
236
|
signing_key:
|
205
237
|
specification_version: 4
|
206
238
|
summary: Helpers for writing extensible Chef cookbooks.
|
@@ -218,6 +250,14 @@ test_files:
|
|
218
250
|
- test/gemfiles/chef-12.1.gemfile
|
219
251
|
- test/gemfiles/chef-12.10.gemfile
|
220
252
|
- test/gemfiles/chef-12.11.gemfile
|
253
|
+
- test/gemfiles/chef-12.12.gemfile
|
254
|
+
- test/gemfiles/chef-12.13.gemfile
|
255
|
+
- test/gemfiles/chef-12.14.gemfile
|
256
|
+
- test/gemfiles/chef-12.15.gemfile
|
257
|
+
- test/gemfiles/chef-12.16.gemfile
|
258
|
+
- test/gemfiles/chef-12.17.gemfile
|
259
|
+
- test/gemfiles/chef-12.18.gemfile
|
260
|
+
- test/gemfiles/chef-12.19.gemfile
|
221
261
|
- test/gemfiles/chef-12.2.gemfile
|
222
262
|
- test/gemfiles/chef-12.3.gemfile
|
223
263
|
- test/gemfiles/chef-12.4.gemfile
|
@@ -227,6 +267,8 @@ test_files:
|
|
227
267
|
- test/gemfiles/chef-12.8.gemfile
|
228
268
|
- test/gemfiles/chef-12.9.gemfile
|
229
269
|
- test/gemfiles/chef-12.gemfile
|
270
|
+
- test/gemfiles/chef-13.0.gemfile
|
271
|
+
- test/gemfiles/chef-13.gemfile
|
230
272
|
- test/gemfiles/master.gemfile
|
231
273
|
- test/integration/default/default_spec.rb
|
232
274
|
- test/integration/default/inversion_spec.rb
|