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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/.travis.yml +61 -26
  4. data/.yardopts +2 -0
  5. data/.yo-rc.json +7 -0
  6. data/CHANGELOG.md +7 -0
  7. data/Gemfile +1 -1
  8. data/LICENSE +201 -202
  9. data/lib/poise.rb +1 -1
  10. data/lib/poise/helpers/option_collector.rb +2 -0
  11. data/lib/poise/helpers/resource_subclass.rb +5 -1
  12. data/lib/poise/version.rb +1 -1
  13. data/poise.gemspec +3 -1
  14. data/test/cookbook/libraries/app.rb +24 -17
  15. data/test/cookbook/libraries/app_config.rb +28 -20
  16. data/test/gemfiles/chef-12.0.gemfile +4 -0
  17. data/test/gemfiles/chef-12.1.gemfile +4 -0
  18. data/test/gemfiles/chef-12.10.gemfile +4 -0
  19. data/test/gemfiles/chef-12.11.gemfile +4 -0
  20. data/test/gemfiles/chef-12.12.gemfile +22 -0
  21. data/test/gemfiles/chef-12.13.gemfile +22 -0
  22. data/test/gemfiles/chef-12.14.gemfile +19 -0
  23. data/test/gemfiles/chef-12.15.gemfile +19 -0
  24. data/test/gemfiles/chef-12.16.gemfile +19 -0
  25. data/test/gemfiles/chef-12.17.gemfile +19 -0
  26. data/test/gemfiles/chef-12.18.gemfile +19 -0
  27. data/test/gemfiles/chef-12.19.gemfile +19 -0
  28. data/test/gemfiles/chef-12.2.gemfile +4 -0
  29. data/test/gemfiles/chef-12.3.gemfile +4 -0
  30. data/test/gemfiles/chef-12.4.gemfile +5 -2
  31. data/test/gemfiles/chef-12.5.gemfile +4 -0
  32. data/test/gemfiles/chef-12.6.gemfile +4 -0
  33. data/test/gemfiles/chef-12.7.gemfile +4 -0
  34. data/test/gemfiles/chef-12.8.gemfile +4 -0
  35. data/test/gemfiles/chef-12.9.gemfile +4 -0
  36. data/test/gemfiles/chef-12.gemfile +1 -1
  37. data/test/gemfiles/chef-13.0.gemfile +19 -0
  38. data/test/gemfiles/chef-13.gemfile +19 -0
  39. data/test/gemfiles/master.gemfile +8 -4
  40. data/test/spec/helpers/fused_spec.rb +4 -1
  41. data/test/spec/helpers/inversion_spec.rb +51 -48
  42. data/test/spec/helpers/option_collector_spec.rb +25 -3
  43. data/test/spec/helpers/resource_cloning_spec.rb +9 -7
  44. data/test/spec/utils_spec.rb +29 -17
  45. metadata +47 -5
@@ -17,3 +17,7 @@
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
19
  gem 'chef', '~> 12.9.41'
20
+ gem 'chefspec', '< 6'
21
+ gem 'fauxhai', '<= 3.9.0'
22
+ gem 'foodcritic', '< 8'
23
+ gem 'rack', '< 2'
@@ -16,4 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 12.11'
19
+ gem 'chef', '~> 12.19'
@@ -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', github: 'chef/chef'
20
- gem 'halite', github: 'poise/halite'
21
- gem 'poise-boiler', github: 'poise/poise-boiler'
22
- gem 'poise-profiler', github: 'poise/poise-profiler'
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 :poise_test2
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
- poise_test_inversion 'test'
313
+ inversion_provider_resolution 'test'
300
314
  end
301
- let(:test_resource) { chef_run.poise_test_inversion('test') }
315
+ let(:test_resource) { chef_run.inversion_provider_resolution('test') }
302
316
 
303
- its(:enabled_handlers) { is_expected.to eq [provider(:poise_test_inversion), provider(:poise_test_inversion_other)] }
304
- its(:resolve) { is_expected.to eq provider(:poise_test_inversion) }
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 a subclassed resource' do
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
- poise_inversion_sub 'test'
334
+ inversion_provider_resolution_sub 'test'
324
335
  end
325
- let(:test_resource) { chef_run.find_resource(:poise_inversion_sub, 'test') }
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 a subclassed resource
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
- poise_inversion_subproviders 'test'
344
+ inversion_provider_resolution_sub2 'test'
339
345
  end
340
- let(:test_resource) { chef_run.find_resource(:poise_inversion_subproviders, 'test') }
346
+ let(:test_resource) { chef_run.find_resource(:inversion_provider_resolution_sub2, 'test') }
341
347
 
342
- its(:enabled_handlers) { is_expected.to eq [provider(:poise_test_inversion), provider(:poise_test_inversion_other)] }
343
- its(:resolve) { is_expected.to eq provider(:poise_test_inversion) }
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
- poise_test_inversion 'test' do
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.poise_test_inversion('test') }
358
+ let(:test_resource) { chef_run.inversion_provider_resolution('test') }
353
359
 
354
- its(:resolve) { is_expected.to eq provider(:poise_test_inversion_other) }
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'][:poise_test_inversion] ||= {}
364
- node.run_state['poise_inversion'][:poise_test_inversion]['test'] ||= {}
365
- node.run_state['poise_inversion'][:poise_test_inversion]['test']['*'] ||= {}
366
- node.run_state['poise_inversion'][:poise_test_inversion]['test']['*']['provider'] = :inverted_subclass
367
- poise_test_inversion 'test'
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.poise_test_inversion('test') }
372
+ let(:test_resource) { chef_run.inversion_provider_resolution('test') }
370
373
 
371
- its(:resolve) { is_expected.to eq provider(:poise_test_inversion_subclass) }
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
- name 'foo'
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
- attribute(:options, option_collector: true, forced_keys: %i{name})
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' => 'foo'}) }
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
- context 'with a resource that should be cloned' do
37
- # Baseline to make sure my test harness works.
38
- it do
39
- expect(Chef::Log).to receive(:warn).at_least(:once)
40
- run_chef
41
- end
42
- end # /context with a resource that should be cloned
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
@@ -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.library_filenames << '/test/my_cookbook/libraries/default.rb'
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.library_filenames << '/test/other_cookbook/libraries/default.rb'
86
- ver.recipe_filenames << '/test/other_cookbook/recipe/default.rb'
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.library_filenames << '/test/my_cookbook/libraries/default.rb'
90
- ver.recipe_filenames << '/test/my_cookbook/recipe/default.rb'
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.library_filenames << '/test/other_cookbook/libraries/default.rb'
100
- ver.recipe_filenames << '/test/other_cookbook/recipe/default.rb'
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.recipe_filenames << '/test/my_cookbook/recipe/default.rb'
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.library_filenames << '/test/other_cookbook/libraries/default.rb'
114
- ver.recipe_filenames << '/test/other_cookbook/recipe/default.rb'
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.recipe_filenames << '/test/my_cookbook/recipe/default.rb'
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.library_filenames << '/test/other_cookbook/libraries/default.rb'
133
- ver.recipe_filenames << '/test/other_cookbook/recipe/default.rb'
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.recipe_filenames << '/test/my_cookbook/recipe/default.rb'
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.library_filenames << '/test/other_cookbook/libraries/default.rb'
157
- ver.recipe_filenames << '/test/other_cookbook/recipe/default.rb'
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.recipe_filenames << '/test/my_cookbook/recipe/default.rb'
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.7.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-02-02 00:00:00.000000000 Z
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 2.0
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.4
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