chef-sugar 1.2.6 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4921a6576cb0835a4c354addd664b79c6f94c69
4
- data.tar.gz: 8ed52146e75365873ff64693b44d127f19c0f170
3
+ metadata.gz: 66a357a489b8f06b63b80a4f27388f34dcfabfb8
4
+ data.tar.gz: a918f43f869416832f5df31c528d31199177cb24
5
5
  SHA512:
6
- metadata.gz: f75621f0511404674586253794b0633295e1400c75e654b9ed073eb2fe523a813513a2628db89f013e7434a820d41192cef989de0bbc153b9117952ae5ea5234
7
- data.tar.gz: 6fd194785292ecfaddacadec69f3f65b042d08fe46c1e8594b6133f5140151f632add36e48f72e50dc3a5bad66ef39eaa60dc737ff07a05c16149d1b7e826ae8
6
+ metadata.gz: 632e3cf402e28a4e70daf2fa2cb1e1c9c55f5f5fae114c2cd4e3e436ee14f1ecaad627b0ec2c35caf316a89a46c2ce8ada33bc27709716db26c9ca4ff700d589
7
+ data.tar.gz: af93b654a34537965675d2e3ded37cdc4dc9339b69c259257f2aabecd878e58056ad5fbe9af6495b700183af4b7f5b0121e7c9564208ea0d13ed873e5dd31fd6
@@ -2,6 +2,16 @@ Chef Sugar Changelog
2
2
  =========================
3
3
  This file is used to list changes made in each version of the chef-sugar cookbook and gem.
4
4
 
5
+ vx.y.z (not yet released)
6
+ -------------------------
7
+ - Check both `$stdout` and `$stderr` in `version_for`
8
+ - Add additional platform versions
9
+ - Make `includes_recipe?` a top-level API (instead of just Node)
10
+ - Match on the highest version number instead of direct equality checking on platform versions
11
+ - Define `Object#blank?` as a core extension
12
+ - Define `String#flush` as a core extension
13
+ - Remove Stove
14
+
5
15
  v1.2.6 (2014-03-16)
6
16
  -------------------
7
17
  - Fix a bug in `vagrant?` returning false on newer Vagrant versions
data/README.md CHANGED
@@ -1,16 +1,23 @@
1
1
  Chef::Sugar
2
2
  ================
3
- [![Build Status](https://secure.travis-ci.org/sethvargo/chef-sugar.png?branch=master)](http://travis-ci.org/sethvargo/chef-sugar)
4
- [![Gem Version](https://badge.fury.io/rb/chef-sugar.png)](http://badge.fury.io/rb/chef-sugar)
5
- [![Dependency Status](https://gemnasium.com/sethvargo/chef-sugar.png)](https://gemnasium.com/sethvargo/chef-sugar)
6
- [![Code Climate](https://codeclimate.com/github/sethvargo/chef-sugar.png)](https://codeclimate.com/github/sethvargo/chef-sugar)
3
+ [![Gem Version](http://img.shields.io/gem/v/chef-sugar.svg)][gem]
4
+ [![Build Status](http://img.shields.io/travis/sethvargo/chef-sugar.svg)][travis]
5
+ [![Dependency Status](http://img.shields.io/gemnasium/sethvargo/chef-sugar.svg)][gemnasium]
6
+ [![Code Climate](http://img.shields.io/codeclimate/github/sethvargo/chef-sugar.svg)][codeclimate]
7
+ [![Gittip](http://img.shields.io/gittip/sethvargo.svg)][gittip]
7
8
 
8
- Chef Sugar is a Gem & Chef Recipe that includes series of helpful sugar of the Chef core and other resources to make a cleaner, more lean recipd DSL, enforce DRY principles, and make writing Chef recipes an awesome experience!
9
+ [gem]: https://rubygems.org/gems/chef-sugar
10
+ [travis]: http://travis-ci.org/sethvargo/chef-suguar
11
+ [gemnasium]: https://gemnasium.com/sethvargo/chef-sugar
12
+ [codeclimate]: https://codeclimate.com/github/sethvargo/chef-sugar
13
+ [gittip]: https://www.gittip.com/sethvargo
14
+
15
+ Chef Sugar is a Gem & Chef Recipe that includes series of helpful sugar of the Chef core and other resources to make a cleaner, more lean recipe DSL, enforce DRY principles, and make writing Chef recipes an awesome experience!
9
16
 
10
17
 
11
18
  Installation
12
19
  ------------
13
- If you want to development/hack on chef-sugar, please see the Contributing.md.
20
+ If you want to develop/hack on chef-sugar, please see the Contributing.md.
14
21
 
15
22
  If you are using Berkshelf, add `chef-sugar` to your `Berksfile`:
16
23
 
@@ -107,6 +114,31 @@ template '/tmp/config' do
107
114
  end
108
115
  ```
109
116
 
117
+ ### Core Extensions
118
+ **Note:** Core extensions are **not** included by default. You must require the `chef/sugar/core_extensions` module manually to gain access to these APIs:
119
+
120
+ ```ruby
121
+ require 'chef/sugar/core_extensions'
122
+ ```
123
+
124
+ - `String#satisfies?`
125
+ - `String#satisfied_by?`
126
+ - `Array#satisfied_by?`
127
+ - `Object#blank?`
128
+
129
+ #### Examples
130
+ ```ruby
131
+ # Checking version constraints
132
+ '1.0.0'.satisfies?('~> 1.0') #=> true
133
+ '~> 1.0'.satisfied_by?('1.0') #=> true
134
+ ```
135
+
136
+ ```ruby
137
+ # Check for an object's presence
138
+ ''.blank? #=> true
139
+ ['hello'].blank? #=> false
140
+ ```
141
+
110
142
  ### Data Bag
111
143
  - `encrypted_data_bag_item` - a handy DSL method for loading encrypted data bag items the same way you load a regular data bag item; this requires `Chef::Config[:encrypted_data_bag_secret]` is set!
112
144
  - `encrypted_data_bag_item_for_environment` - find the data bag entry for the current node's Chef environment.
@@ -219,7 +251,6 @@ end
219
251
  - `deep_fetch` - safely fetch a nested attribute.
220
252
  - `deep_fetch!` - fetch a nested attribute, raising a more semantic error if the key does not exist.
221
253
  - `in?` - determine if the node is in the given Chef environment.
222
- - `includes_recipe?`
223
254
 
224
255
  #### Examples
225
256
  ```ruby
@@ -230,14 +261,6 @@ credentials = if in?('production')
230
261
  end
231
262
  ```
232
263
 
233
- ```ruby
234
- if includes_recipe?('apache2::default')
235
- apache_module 'my_module' do
236
- # ...
237
- end
238
- end
239
- ```
240
-
241
264
  ```ruby
242
265
  node.deep_fetch('apache2', 'config', 'root') => node['apache2']['config']['root']
243
266
  ```
@@ -307,6 +330,17 @@ node['attribute'] = if windows?
307
330
  log 'This has been known to fail on Ruby 2.0' if ruby_20?
308
331
  ```
309
332
 
333
+ ### Run Context
334
+ - `includes_recipe?` - determines if the current run context includes the recipe
335
+
336
+ ```ruby
337
+ if includes_recipe?('apache2::default')
338
+ apache_module 'my_module' do
339
+ # ...
340
+ end
341
+ end
342
+ ```
343
+
310
344
  ### Shell
311
345
  - `which`
312
346
  - `dev_null`
data/Rakefile CHANGED
@@ -1,8 +1 @@
1
- require 'bundler/setup'
2
1
  require 'bundler/gem_tasks'
3
-
4
- require 'stove/rake_task'
5
- desc "Publish chef-sugar v#{Chef::Sugar::VERSION} to the Community Site"
6
- Stove::RakeTask.new(:publish) do |t|
7
- t.send(:options)[:version] = Chef::Sugar::VERSION
8
- end
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.add_development_dependency 'bundler', '~> 1.3'
28
28
  spec.add_development_dependency 'rake'
29
- spec.add_development_dependency 'stove', '~> 2.0.0.beta'
30
29
 
31
30
  spec.add_development_dependency 'chefspec', '~> 3.0'
32
31
  spec.add_development_dependency 'test-kitchen', '~> 1.1'
@@ -31,6 +31,7 @@ class Chef
31
31
  require_relative 'sugar/platform'
32
32
  require_relative 'sugar/platform_family'
33
33
  require_relative 'sugar/ruby'
34
+ require_relative 'sugar/run_context'
34
35
  require_relative 'sugar/shell'
35
36
  require_relative 'sugar/vagrant'
36
37
  require_relative 'sugar/version'
@@ -16,3 +16,4 @@
16
16
 
17
17
  require_relative 'core_extensions/array'
18
18
  require_relative 'core_extensions/string'
19
+ require_relative 'core_extensions/object'
@@ -30,5 +30,5 @@ class Array
30
30
  #
31
31
  def satisfied_by?(version)
32
32
  Chef::Sugar::Constraints::Constraint.new(*dup).satisfied_by?(version)
33
- end
33
+ end unless method_defined?(:satisfied_by?)
34
34
  end
@@ -0,0 +1,27 @@
1
+ #
2
+ # Copyright 2013-2014, Seth Vargo <sethvargo@gmail.com>
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
+ class Object
18
+ # An object is blank if it's false, empty, or a whitespace string.
19
+ # This is implemented in rails.
20
+ #
21
+ # @example foo.nil? || foo.empty? can be replaced by foo.blank?
22
+ #
23
+ # @return [true, false]
24
+ def blank?
25
+ respond_to?(:empty?) ? empty? : !self
26
+ end unless method_defined?(:blank?)
27
+ end
@@ -30,7 +30,7 @@ class String
30
30
  #
31
31
  def satisfies?(*constraints)
32
32
  Chef::Sugar::Constraints::Version.new(dup).satisfies?(*constraints)
33
- end
33
+ end unless method_defined?(:satisfies?)
34
34
 
35
35
  #
36
36
  # Treat strings as version constraints.
@@ -45,5 +45,22 @@ class String
45
45
  #
46
46
  def satisfied_by?(version)
47
47
  Chef::Sugar::Constraints::Constraint.new(dup).satisfied_by?(version)
48
- end
48
+ end unless method_defined?(:satisfied_by?)
49
+
50
+ #
51
+ # Left-flush a string based off of the number of whitespace characters on the
52
+ # first line. This is especially useful for heredocs when whitespace matters.
53
+ #
54
+ # @example Remove leading whitespace and flush
55
+ # <<-EOH.flush
56
+ # def method
57
+ # 'This is a string!'
58
+ # end
59
+ # EOH #=>"def method\n 'This is a string!'\nend"
60
+ #
61
+ # @return [String]
62
+ #
63
+ def flush
64
+ gsub(/^#{self[/\A\s*/]}/, '').chomp
65
+ end unless method_defined?(:flush)
49
66
  end
@@ -15,11 +15,17 @@ class Chef
15
15
 
16
16
  def method_missing(m, *args, &block)
17
17
  resource = @recipe.send(m, *args, &block)
18
- actions = Array(resource.action)
19
- resource.action(:nothing)
20
- actions.each do |action|
21
- resource.run_action(action)
18
+
19
+ if resource.is_a?(Chef::Resource)
20
+ actions = Array(resource.action)
21
+ resource.action(:nothing)
22
+
23
+ actions.each do |action|
24
+ resource.run_action(action)
25
+ end
22
26
  end
27
+
28
+ resource
23
29
  end
24
30
  end
25
31
 
@@ -38,16 +38,6 @@ EOH
38
38
  environment === chef_environment
39
39
  end
40
40
 
41
- #
42
- # Determine if the current node includes the given recipe name.
43
- #
44
- # @param [String] recipe_name
45
- #
46
- def includes_recipe?(recipe_name)
47
- run_list.include?(recipe_name)
48
- end
49
- alias_method :include_recipe?, :includes_recipe?
50
-
51
41
  #
52
42
  # Safely fetch a deeply nested attribute by specifying a list of keys,
53
43
  # bypassing Ruby's Hash notation. This method swallows +NoMethodError+
@@ -21,11 +21,12 @@ class Chef
21
21
 
22
22
  PLATFORM_VERSIONS = {
23
23
  'debian' => {
24
- 'squeeze' => '6.0',
25
- 'wheezy' => '7.0',
26
- 'jessie' => '8.0',
24
+ 'squeeze' => '6',
25
+ 'wheezy' => '7',
26
+ 'jessie' => '8',
27
27
  },
28
28
  'linuxmint' => {
29
+ 'petra' => '16',
29
30
  'olivia' => '15',
30
31
  'nadia' => '14',
31
32
  'maya' => '13',
@@ -45,6 +46,7 @@ class Chef
45
46
  'quantal' => '12.10',
46
47
  'raring' => '13.04',
47
48
  'saucy' => '13.10',
49
+ 'trusty' => '14.04',
48
50
  },
49
51
  }
50
52
 
@@ -64,9 +66,14 @@ class Chef
64
66
  COMPARISON_OPERATORS.each do |operator, block|
65
67
  method_name = "#{platform}_#{operator}_#{name}?".squeeze('_').to_sym
66
68
  define_method(method_name) do |node|
69
+ # Find the highest precedence that we actually care about based
70
+ # off of what was given to us in the list.
71
+ length = version.split('.').size
72
+ check = node['platform_version'].split('.')[0...length].join('.')
73
+
67
74
  # Calling #to_f will ensure we only check major versions since
68
75
  # '10.04.4'.to_f #=> 10.04.
69
- node['platform'] == platform && block.call(node['platform_version'].to_f, version.to_f)
76
+ node['platform'] == platform && block.call(check.to_f, version.to_f)
70
77
  end
71
78
  end
72
79
  end
@@ -0,0 +1,41 @@
1
+ #
2
+ # Copyright 2013-2014, Seth Vargo <sethvargo@gmail.com>
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
+ class Chef
18
+ module Sugar
19
+ module RunContext
20
+ extend self
21
+
22
+ #
23
+ # Determine if the current node includes the given recipe name.
24
+ #
25
+ # @param [String] recipe_name
26
+ #
27
+ def includes_recipe?(node, recipe_name)
28
+ node.recipe?(recipe_name)
29
+ end
30
+ alias_method :include_recipe?, :includes_recipe?
31
+ end
32
+
33
+ module DSL
34
+ # @see Chef::Sugar::IP#best_ip_for
35
+ def includes_recipe?(recipe_name)
36
+ Chef::Sugar::RunContext.includes_recipe?(node, recipe_name)
37
+ end
38
+ alias_method :include_recipe?, :includes_recipe?
39
+ end
40
+ end
41
+ end
@@ -93,7 +93,8 @@ class Chef
93
93
  #
94
94
  # Assumptions:
95
95
  # 1. The command exists.
96
- # 2. The command outputs version information to +$stdout+.
96
+ # 2. The command outputs version information to +$stdout+ or +$stderr+.
97
+ # Did you know that java outputs its version to $stderr?
97
98
  #
98
99
  #
99
100
  # @param [String] cmd
@@ -102,13 +103,13 @@ class Chef
102
103
  # the flag to use to get the version
103
104
  #
104
105
  # @return [String]
105
- # the output of the version command
106
+ # the entire output of the version command (stderr and stdout)
106
107
  #
107
108
  def version_for(cmd, flag = '--version')
108
109
  cmd = Mixlib::ShellOut.new("#{cmd} #{flag}")
109
110
  cmd.run_command
110
111
  cmd.error!
111
- cmd.stdout.strip
112
+ [cmd.stdout.strip, cmd.stderr.strip].join("\n")
112
113
  end
113
114
  end
114
115
 
@@ -16,6 +16,6 @@
16
16
 
17
17
  class Chef
18
18
  module Sugar
19
- VERSION = '1.2.6'
19
+ VERSION = '1.3.0'
20
20
  end
21
21
  end
@@ -14,4 +14,4 @@ For the most up-to-date information and documentation, please visit the [Chef
14
14
  Sugar project page on GitHub](https://github.com/sethvargo/chef-sugar).
15
15
  EOH
16
16
 
17
- version '1.2.6'
17
+ version '1.3.0'
@@ -18,7 +18,7 @@
18
18
  #
19
19
 
20
20
  chef_gem('chef-sugar') do
21
- version '1.2.4'
21
+ version '1.2.6'
22
22
  action :nothing
23
23
  end.run_action(:install)
24
24
 
@@ -10,6 +10,11 @@ RSpec.configure do |config|
10
10
  spec.syntax = :expect
11
11
  end
12
12
 
13
+ # Focus groups
14
+ config.treat_symbols_as_metadata_keys_with_true_values = true
15
+ config.filter_run(focus: true)
16
+ config.run_all_when_everything_filtered = true
17
+
13
18
  # Run specs in random order to surface order dependencies. If you find an
14
19
  # order dependency and want to debug it, you can fix the order by providing
15
20
  # the seed, which is printed after each run.
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+ require 'chef/sugar/core_extensions'
3
+
4
+ describe Object do
5
+ describe '#blank?' do
6
+ it 'includes the method' do
7
+ expect(described_class).to be_method_defined(:blank?)
8
+ end
9
+
10
+ it 'returns true for nil' do
11
+ expect(nil).to be_blank
12
+ end
13
+
14
+ it 'returns true for false' do
15
+ expect(false).to be_blank
16
+ end
17
+
18
+ it 'returns true for the empty string' do
19
+ expect('').to be_blank
20
+ end
21
+
22
+ it 'returns true for the empty array' do
23
+ expect([]).to be_blank
24
+ end
25
+
26
+ it 'returns true for the empty hash' do
27
+ expect({}).to be_blank
28
+ end
29
+
30
+ it 'returns false for a non-empty string' do
31
+ expect(' ').to_not be_blank
32
+ end
33
+
34
+ it 'returns false for a non-empty string with unicode' do
35
+ expect("\u00a0").to_not be_blank
36
+ end
37
+
38
+ it 'returns false for a non-empty string with special characters' do
39
+ expect("\n\t").to_not be_blank
40
+ end
41
+
42
+ it 'returns false for any object' do
43
+ expect(Object.new).to_not be_blank
44
+ end
45
+
46
+ it 'returns false for true' do
47
+ expect(true).to_not be_blank
48
+ end
49
+
50
+ it 'returns false for a fixnum' do
51
+ expect(1).to_not be_blank
52
+ end
53
+
54
+ it 'returns false for an array with items' do
55
+ expect(['foo']).to_not be_blank
56
+ end
57
+
58
+ it 'returns false for an array with items' do
59
+ expect({'foo' => 'bar'}).to_not be_blank
60
+ end
61
+ end
62
+ end
@@ -13,4 +13,36 @@ describe String do
13
13
  expect(described_class).to be_method_defined(:satisfied_by?)
14
14
  end
15
15
  end
16
+
17
+ describe '#flush' do
18
+ context 'when given a single-line string' do
19
+ it 'strips trailing whitespace' do
20
+ string = <<-EOH
21
+ This is a string
22
+ EOH
23
+ expect(string.flush).to eq('This is a string')
24
+ end
25
+ end
26
+
27
+ context 'when given a multi-line string' do
28
+ it 'removes the leading number of whitespaces' do
29
+ string = <<-EOH
30
+ def method
31
+ "This is a string!"
32
+ end
33
+ EOH
34
+ expect(string.flush).to eq(%Q(def method\n "This is a string!"\nend))
35
+ end
36
+
37
+ it 'leaves a newline when given' do
38
+ string = <<-EOH
39
+ def method
40
+ "This is a string!"
41
+ end
42
+
43
+ EOH
44
+ expect(string.flush).to eq(%Q(def method\n "This is a string!"\nend\n))
45
+ end
46
+ end
47
+ end
16
48
  end
@@ -15,19 +15,6 @@ describe Chef::Node do
15
15
  end
16
16
  end
17
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
18
  describe '#deep_fetch' do
32
19
  let(:node) { described_class.new }
33
20
  before { node.default['apache2']['config']['root'] = '/var/www' }
@@ -197,5 +197,29 @@ describe Chef::Sugar::Platform do
197
197
  expect(described_class.ubuntu_before_or_at_lucid?(node)).to be_true
198
198
  end
199
199
  end
200
+
201
+ describe '#debian_wheezy?' do
202
+ it 'returns true when the version is a subset of the major' do
203
+ node = { 'platform' => 'debian', 'platform_version' => '7.1' }
204
+ expect(described_class.debian_wheezy?(node)).to be_true
205
+ end
206
+
207
+ it 'returns false when the version is not the major' do
208
+ node = { 'platform' => 'debian', 'platform_version' => '6.1' }
209
+ expect(described_class.debian_wheezy?(node)).to be_false
210
+ end
211
+ end
212
+
213
+ describe '#debian_before_wheezy?' do
214
+ it 'returns true when the version is a less than the major' do
215
+ node = { 'platform' => 'debian', 'platform_version' => '6.5' }
216
+ expect(described_class.debian_before_wheezy?(node)).to be_true
217
+ end
218
+
219
+ it 'returns false when the version is not less than the major' do
220
+ node = { 'platform' => 'debian', 'platform_version' => '8.0' }
221
+ expect(described_class.debian_before_wheezy?(node)).to be_false
222
+ end
223
+ end
200
224
  end
201
225
  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
+ node.stub(: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
+ node.stub(:recipe?).and_return(false)
16
+ expect(described_class.includes_recipe?(node, 'bar')).to be_false
17
+ end
18
+ end
19
+ end
@@ -71,12 +71,16 @@ describe Chef::Sugar::Shell do
71
71
  end
72
72
 
73
73
  describe '#version_for' do
74
- let(:shell_out) { double('shell_out', run_command: nil, error!: nil, stdout: '1.2.3') }
74
+ let(:shell_out) { double('shell_out', run_command: nil, error!: nil, stdout: '1.2.3', stderr: 'Oh no!') }
75
75
  before { Mixlib::ShellOut.stub(:new).and_return(shell_out) }
76
76
 
77
77
  it 'runs the thing in shellout' do
78
78
  expect(Mixlib::ShellOut).to receive(:new).with('mongo --version')
79
79
  described_class.version_for('mongo')
80
80
  end
81
+
82
+ it 'returns the combined stdout and stderr' do
83
+ expect(described_class.version_for('mongo')).to eq("1.2.3\nOh no!")
84
+ end
81
85
  end
82
86
  end
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.2.6
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Vargo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-16 00:00:00.000000000 Z
11
+ date: 2014-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: stove
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 2.0.0.beta
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 2.0.0.beta
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: chefspec
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +105,7 @@ files:
119
105
  - lib/chef/sugar/constraints.rb
120
106
  - lib/chef/sugar/core_extensions.rb
121
107
  - lib/chef/sugar/core_extensions/array.rb
108
+ - lib/chef/sugar/core_extensions/object.rb
122
109
  - lib/chef/sugar/core_extensions/string.rb
123
110
  - lib/chef/sugar/data_bag.rb
124
111
  - lib/chef/sugar/filters.rb
@@ -128,6 +115,7 @@ files:
128
115
  - lib/chef/sugar/platform.rb
129
116
  - lib/chef/sugar/platform_family.rb
130
117
  - lib/chef/sugar/ruby.rb
118
+ - lib/chef/sugar/run_context.rb
131
119
  - lib/chef/sugar/shell.rb
132
120
  - lib/chef/sugar/vagrant.rb
133
121
  - lib/chef/sugar/version.rb
@@ -139,6 +127,7 @@ files:
139
127
  - spec/unit/chef/sugar/cloud_spec.rb
140
128
  - spec/unit/chef/sugar/constraints_spec.rb
141
129
  - spec/unit/chef/sugar/core_extensions/array_spec.rb
130
+ - spec/unit/chef/sugar/core_extensions/object_spec.rb
142
131
  - spec/unit/chef/sugar/core_extensions/string_spec.rb
143
132
  - spec/unit/chef/sugar/data_bag_spec.rb
144
133
  - spec/unit/chef/sugar/ip_spec.rb
@@ -147,6 +136,7 @@ files:
147
136
  - spec/unit/chef/sugar/platform_family_spec.rb
148
137
  - spec/unit/chef/sugar/platform_spec.rb
149
138
  - spec/unit/chef/sugar/ruby_spec.rb
139
+ - spec/unit/chef/sugar/run_context_spec.rb
150
140
  - spec/unit/chef/sugar/shell_spec.rb
151
141
  - spec/unit/chef/sugar/vagrant_spec.rb
152
142
  - spec/unit/recipes/default_spec.rb
@@ -182,6 +172,7 @@ test_files:
182
172
  - spec/unit/chef/sugar/cloud_spec.rb
183
173
  - spec/unit/chef/sugar/constraints_spec.rb
184
174
  - spec/unit/chef/sugar/core_extensions/array_spec.rb
175
+ - spec/unit/chef/sugar/core_extensions/object_spec.rb
185
176
  - spec/unit/chef/sugar/core_extensions/string_spec.rb
186
177
  - spec/unit/chef/sugar/data_bag_spec.rb
187
178
  - spec/unit/chef/sugar/ip_spec.rb
@@ -190,6 +181,8 @@ test_files:
190
181
  - spec/unit/chef/sugar/platform_family_spec.rb
191
182
  - spec/unit/chef/sugar/platform_spec.rb
192
183
  - spec/unit/chef/sugar/ruby_spec.rb
184
+ - spec/unit/chef/sugar/run_context_spec.rb
193
185
  - spec/unit/chef/sugar/shell_spec.rb
194
186
  - spec/unit/chef/sugar/vagrant_spec.rb
195
187
  - spec/unit/recipes/default_spec.rb
188
+ has_rdoc: