spice 0.5.0 → 0.6.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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # Release Notes - Spice - Version 0.5.0
2
+
3
+ ## Bug
4
+
5
+ * url_path was not being reset
6
+ * added `chef_version` config variable to fix some people's issues with require `chef/version`
7
+
8
+ ## Improvement
9
+
10
+ * Node support!
11
+
12
+
13
+
1
14
  # Release Notes - Spice - Version 0.3.0
2
15
 
3
16
  ## Bug
data/Gemfile CHANGED
@@ -6,11 +6,13 @@ gem 'yajl-ruby'
6
6
 
7
7
  group :development, :test do
8
8
  gem "yard", "~> 0.6.4"
9
- gem "rspec", "~> 2.5.0"
10
- gem "cucumber", "~> 0.10.0"
11
- gem "webmock", "~> 1.6.2"
12
- gem "timecop", "~> 0.3.5"
13
- gem 'watchr'
14
- gem 'spork', '~> 0.9.0.rc'
15
- gem 'webmock', '~> 1.6.2'
9
+ gem 'rspec', '>= 2.6.0'
10
+ gem "webmock", ">= 1.6.2"
11
+ gem "timecop", ">= 0.3.5"
12
+ gem 'guard', '>= 0.6.2'
13
+ gem 'guard-rspec', '>= 0.4.2'
14
+ gem 'guard-spork', '>= 0.2.1'
15
+ gem 'spork', '>= 0.9.0.rc8'
16
+ gem 'rb-fsevent', '>= 0.4.3.1'
17
+ gem 'growl', '>= 1.0.3'
16
18
  end
data/Guardfile ADDED
@@ -0,0 +1,9 @@
1
+ guard 'rspec', :version => 2, :cli => "--format documentation" do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
6
+
7
+ guard 'spork' do
8
+ watch('spec/spec_helper.rb')
9
+ end
@@ -0,0 +1,85 @@
1
+ module Spice
2
+ class Environment < Spice::Chef
3
+ # Get a list of all data bags in the following syntax
4
+ # Spice::Environment.all
5
+ #
6
+ # @param [Hash] options the options hash. Currently does nothing
7
+ def self.all(options={})
8
+ connection.get("/environments")
9
+ end
10
+
11
+ # An alternative format for showing the contents of a data bag
12
+ # @example Retrieve the id and uri of items in a data bag called "users"
13
+ # Spice::Environment["users"] # => {"adam":"http://localhost:4000/data/users/adam"}
14
+ def self.[](name)
15
+ connection.get("/environments/#{name}")
16
+ end
17
+
18
+ # Show the contents of a data bag
19
+ # @example Retrieve the id and uri of items in a data bag called "users"
20
+ # Spice::Environment.show(:name => "users") # => {"adam":"http://localhost:4000/data/users/adam"}
21
+ #
22
+ # @param [Hash] options The options hash
23
+ # @option options [String] :name The name of your data bag
24
+ def self.show(options={})
25
+ raise ArgumentError, "Option :name must be present" unless options[:name]
26
+ name = options.delete(:name)
27
+ connection.get("/environments/#{name}")
28
+ end
29
+
30
+ # Create a a new data bag
31
+ #
32
+ # @example
33
+ # Spice::Environment.create(:name => "users")
34
+ #
35
+ # @param [Hash] options the options hash from which to create a data bag
36
+ # @option options [String] :name The name of your data bag
37
+
38
+ def self.create(options={})
39
+ options[:chef_type] ||= "environment"
40
+ options[:json_class] ||= "Chef::Environment"
41
+ options[:attributes] ||= {}
42
+ options[:description] ||= ""
43
+ options[:cookbook_versions] ||= {}
44
+ connection.post("/environments", options)
45
+ end
46
+
47
+ # Delete a data bag
48
+ #
49
+ # @example
50
+ # Spice::Environment.delete(:name => "users")
51
+ #
52
+ # @param [Hash] options the options hash from which to delete a data bag
53
+ # @option options [String] :name The name of your data bag
54
+
55
+ def self.delete(options={})
56
+ raise ArgumentError, "Option :name must be present" unless options[:name]
57
+ name = options.delete(:name)
58
+ connection.delete("/environments/#{name}", options)
59
+ end
60
+
61
+ # Shows a data bag item
62
+ #
63
+ # @example
64
+ # Spice::Environment.show_item(:name => "users", :id => "adam")
65
+ #
66
+ # @param [Hash] options the options hash from which to create a data bag
67
+ # @option options [String] :name The name of your data bag
68
+ # @option options [String] :id The id of the data bag item
69
+
70
+ def self.show_cookbook(options={})
71
+ raise ArgumentError, "Option :name must be present" unless options[:name]
72
+ raise ArgumentError, "Option :cookbook must be present" unless options[:cookbook]
73
+ name = options.delete(:name)
74
+ cookbook = options.delete(:cookbook)
75
+ connection.get("/environments/#{name}/cookbooks/#{cookbook}", options)
76
+ end
77
+
78
+ def self.list_cookbooks(options={})
79
+ raise ArgumentError, "Option :name must be present" unless options[:name]
80
+ name = options.delete(:name)
81
+ connection.get("/environments/#{name}/cookbooks", options)
82
+ end
83
+
84
+ end
85
+ end
data/lib/spice/mock.rb CHANGED
@@ -6,6 +6,7 @@ module Spice
6
6
  Spice.host = 'localhost'
7
7
  Spice.client_name = "testclient"
8
8
  Spice.key_file = "/tmp/keyfile.pem"
9
+ Spice.chef_version = "0.9.14"
9
10
  Spice.connect!
10
11
  end
11
12
 
data/lib/spice/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spice
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
data/lib/spice.rb CHANGED
@@ -13,6 +13,7 @@ require 'spice/client'
13
13
  require 'spice/cookbook'
14
14
  require 'spice/data_bag'
15
15
  require 'spice/node'
16
+ require 'spice/environment'
16
17
  require 'spice/search'
17
18
  require 'spice/connection'
18
19
 
@@ -22,7 +23,7 @@ require 'spice/mock'
22
23
  module Spice
23
24
 
24
25
  class << self
25
- attr_writer :host, :port, :scheme, :url_path, :client_name, :connection, :key_file, :raw_key
26
+ attr_writer :host, :port, :scheme, :url_path, :client_name, :connection, :key_file, :raw_key, :chef_version
26
27
 
27
28
  def default_host
28
29
  @default_host || "localhost"
@@ -71,12 +72,12 @@ module Spice
71
72
  @raw_key = raw_key
72
73
  end
73
74
 
74
- def chef_version
75
- @chef_version || "0.9.14"
75
+ def default_chef_version
76
+ @default_chef_version || "0.9.14"
76
77
  end
77
78
 
78
- def chef_version=(version)
79
- @chef_version = version
79
+ def chef_version
80
+ @chef_version || default_chef_version
80
81
  end
81
82
 
82
83
  def url_path
@@ -100,6 +101,7 @@ module Spice
100
101
  @port = default_port
101
102
  @scheme = default_scheme
102
103
  @url_path = default_url_path
104
+ @chef_version = default_chef_version
103
105
  @key_file = nil
104
106
  @client_name = nil
105
107
  @connection = nil
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+
3
+ module Spice
4
+ describe Environment do
5
+ describe ".all" do
6
+ before { stub_environment_list }
7
+ subject { Environment.all }
8
+
9
+ it { should have_body(environment_list_response) }
10
+ it { should respond_with(200) }
11
+ end
12
+
13
+ describe ".show" do
14
+ context "if the environment is found" do
15
+ before { stub_environment_show }
16
+ subject { Environment.show(:name => "dev") }
17
+
18
+ it { should have_body(environment_show_response) }
19
+ it { should respond_with(200) }
20
+ end
21
+
22
+ context "if the environment is not found" do
23
+ before { stub_environment_show(404) }
24
+ subject { Environment.show(:name => "dev") }
25
+
26
+ it { should_not have_body(environment_show_response) }
27
+ it { should respond_with(404) }
28
+ end
29
+ end
30
+
31
+ describe ".create" do
32
+ context "if the environment can be created" do
33
+ before { stub_environment_create }
34
+ subject { Environment.create(:name => "dev") }
35
+
36
+ it { should have_body(environment_create_response) }
37
+ it { should respond_with(201) }
38
+ end
39
+
40
+ context "if the environment already exists" do
41
+ before { stub_environment_create(409) }
42
+ subject { Environment.create(:name => "dev") }
43
+
44
+ it { should have_body(environment_conflict) }
45
+ it { should respond_with(409) }
46
+ end
47
+ end
48
+
49
+ describe ".delete" do
50
+ context "if the environment can be deleted" do
51
+ before { stub_environment_delete }
52
+ subject { Environment.delete(:name => "dev") }
53
+
54
+ it { should have_body(environment_delete_response) }
55
+ it { should respond_with(200) }
56
+ end
57
+
58
+ context "if the environment cannot be deleted" do
59
+ before { stub_environment_delete(404) }
60
+ subject { Environment.delete(:name => "dev") }
61
+
62
+ it { should have_body(environment_not_found) }
63
+ it { should respond_with(404) }
64
+ end
65
+ end
66
+
67
+ describe ".list_cookbooks" do
68
+ context "if cookbooks exists" do
69
+ before { stub_environment_cookbooks_list }
70
+ subject { Environment.list_cookbooks(:name => "dev") }
71
+
72
+ it { should have_body(environment_cookbooks_list_response) }
73
+ it { should respond_with(200) }
74
+ end
75
+ end
76
+
77
+ describe ".show_cookbook" do
78
+ context "if the cookbook exists" do
79
+ before { stub_environment_cookbook_show }
80
+ subject { Environment.show_cookbook(:name => "dev", :cookbook => "apache") }
81
+
82
+ it { should have_body(environment_cookbook_show_response) }
83
+ it { should respond_with(200) }
84
+ end
85
+
86
+ context "if the cookbook does not exist" do
87
+ before { stub_environment_cookbook_show(404) }
88
+ subject { Environment.show_cookbook(:name => "dev", :cookbook => "apache") }
89
+
90
+ it { should have_body(environment_not_found) }
91
+ it { should respond_with(404) }
92
+ end
93
+ end
94
+
95
+ end
96
+ end
data/spec/spice_spec.rb CHANGED
@@ -37,6 +37,15 @@ describe "Spice" do
37
37
  lambda { Spice.default_url_path = "/woohah" }.should raise_error
38
38
  end
39
39
  end
40
+
41
+ describe ".default_chef_version" do
42
+ it "should default to '0.9.14'" do
43
+ Spice.default_chef_version.should == "0.9.14"
44
+ end
45
+ it "should not be settable" do
46
+ lambda { Spice.default_chef_version = "0.9.12" }.should raise_error
47
+ end
48
+ end
40
49
 
41
50
  describe ".host" do
42
51
  it "should default to 'localhost' if not set" do
@@ -78,6 +87,16 @@ describe "Spice" do
78
87
  end
79
88
  end
80
89
 
90
+ describe ".chef_version" do
91
+ it "should default to '0.9.14' if not set" do
92
+ Spice.chef_version.should == "0.9.14"
93
+ end
94
+ it "should be settable" do
95
+ Spice.chef_version = "0.9.12"
96
+ Spice.chef_version.should == "0.9.12"
97
+ end
98
+ end
99
+
81
100
  describe ".client_name" do
82
101
  before { Spice.reset! }
83
102
  it "should not have a default" do
@@ -132,6 +151,10 @@ describe "Spice" do
132
151
  Spice.reset!
133
152
  Spice.scheme.should == "http"
134
153
  end
154
+ it "should reset Spice.chef_version" do
155
+ Spice.reset!
156
+ Spice.chef_version.should == "0.9.14"
157
+ end
135
158
  it "should reset Spice.url_path" do
136
159
  Spice.reset!
137
160
  Spice.url_path.should == ""
@@ -0,0 +1,221 @@
1
+ def stub_environment_list
2
+ stub_request(:get, "http://localhost:4000/environments").
3
+ to_return(
4
+ :status => 200,
5
+ :body => environment_list_response
6
+ )
7
+ end
8
+
9
+ def stub_environment_show(status=200)
10
+ case status
11
+ when 200
12
+ stub_request(:get, "http://localhost:4000/environments/dev").
13
+ to_return(
14
+ :status => status,
15
+ :body => environment_show_response
16
+ )
17
+ when 404
18
+ stub_request(:get, "http://localhost:4000/environments/dev").
19
+ to_return(
20
+ :status => status,
21
+ :body => environment_not_found
22
+ )
23
+ end
24
+ end
25
+
26
+ def stub_environment_create(status=201)
27
+ case status
28
+ when 201
29
+ stub_request(:post, "http://localhost:4000/environments").
30
+ with(
31
+ :body => environment_create_payload ).
32
+ to_return(
33
+ :status => status,
34
+ :body => environment_create_response
35
+ )
36
+ when 409
37
+ stub_request(:post, "http://localhost:4000/environments").
38
+ with(
39
+ :body => environment_create_payload ).
40
+ to_return(
41
+ :status => status,
42
+ :body => environment_conflict
43
+ )
44
+ end
45
+ end
46
+
47
+ def stub_environment_update(status=200)
48
+ case status
49
+ when 200
50
+ stub_request(:post, "http://localhost:4000/environments/dev").
51
+ with(
52
+ :body => environment_udpate_payload ).
53
+ to_return(
54
+ :status => status,
55
+ :body => environment_update_response
56
+ )
57
+ when 404
58
+ stub_request(:post, "http://localhost:4000/environments/dev").
59
+ with(
60
+ :body => environment_update_payload ).
61
+ to_return(
62
+ :status => status,
63
+ :body => environment_not_found
64
+ )
65
+ end
66
+ end
67
+
68
+ def stub_environment_delete(status=200)
69
+ case status
70
+ when 200
71
+ stub_request(:delete, "http://localhost:4000/environments/dev").
72
+ with(:body => "").
73
+ to_return(
74
+ :status => status,
75
+ :body => environment_delete_response
76
+ )
77
+ when 404
78
+ stub_request(:delete, "http://localhost:4000/environments/dev").
79
+ with(:body => "").
80
+ to_return(
81
+ :status => status,
82
+ :body => environment_not_found
83
+ )
84
+ end
85
+ end
86
+
87
+ def stub_environment_cookbooks_list
88
+ stub_request(:get, "http://localhost:4000/environments/dev/cookbooks").
89
+ to_return(
90
+ :status => 200,
91
+ :body => environment_cookbooks_list_response
92
+ )
93
+ end
94
+
95
+ def stub_environment_cookbook_show(status=200)
96
+ case status
97
+ when 200
98
+ stub_request(:get, "http://localhost:4000/environments/dev/cookbooks/apache").
99
+ to_return(
100
+ :status => status,
101
+ :body => environment_cookbook_show_response
102
+ )
103
+ when 404
104
+ stub_request(:get, "http://localhost:4000/environments/dev/cookbooks/apache").
105
+ to_return(
106
+ :status => status,
107
+ :body => environment_not_found
108
+ )
109
+ end
110
+ end
111
+
112
+
113
+ # payloads and responses
114
+
115
+ def environment_list_response
116
+ { "webserver" => "http://localhost:4000/environments/webserver" }
117
+ end
118
+
119
+ def environment_show_response
120
+ {
121
+ "name" => "dev",
122
+ "attributes" => {
123
+ },
124
+ "json_class" => "Chef::Environment",
125
+ "description" => "",
126
+ "cookbook_versions" => {
127
+ },
128
+ "chef_type" => "environment"
129
+ }
130
+ end
131
+
132
+ def environment_create_response
133
+ { "uri" => "http://localhost:4000/environments/dev" }
134
+ end
135
+
136
+ def environment_delete_response
137
+ {
138
+ "name" => "dev",
139
+ "attributes" => {
140
+ },
141
+ "json_class" => "Chef::Environment",
142
+ "description" => "",
143
+ "cookbook_versions" => {
144
+ },
145
+ "chef_type" => "environment"
146
+ }
147
+ end
148
+
149
+ def environment_update_response
150
+ {
151
+ "name" => "dev",
152
+ "attributes" => {
153
+ },
154
+ "json_class" => "Chef::Environment",
155
+ "description" => "The Dev Environment",
156
+ "cookbook_versions" => {
157
+ },
158
+ "chef_type" => "environment"
159
+ }
160
+ end
161
+
162
+
163
+ def environment_cookbooks_list_response
164
+ {
165
+ "apache2" => {
166
+ "url" => "http://localhost:4000/cookbooks/apache2",
167
+ "versions" => [
168
+ { "url" => "http://localhost:4000/cookbooks/apache2/5.1.0", "version" => "5.1.0" },
169
+ { "url" => "http://localhost:4000/cookbooks/apache2/4.2.0", "version" => "4.2.0" }
170
+ ]
171
+ },
172
+ "nginx" => {
173
+ "url" => "http://localhost:4000/cookbooks/nginx",
174
+ "versions" => [
175
+ { "url" => "http://localhost:4000/cookbooks/nginx/1.0.0", "version" => "1.0.0" },
176
+ { "url" => "http://localhost:4000/cookbooks/nginx/0.3.0", "version" => "0.3.0" }
177
+ ]
178
+ }
179
+ }
180
+ end
181
+
182
+ def environment_cookbook_show_response
183
+ {
184
+ "apache2" => {
185
+ "url" => "http://localhost:4000/cookbooks/apache2",
186
+ "versions" => [
187
+ { "url" => "http://localhost:4000/cookbooks/apache2/5.1.0", "version" => "5.1.0" },
188
+ {"url" => "http://localhost:4000/cookbooks/apache2/4.2.0", "version" => "4.2.0" }
189
+ ]
190
+ }
191
+ }
192
+ end
193
+
194
+ def environment_not_found
195
+ { "error" => [ "Could not load environment env" ] }
196
+ end
197
+
198
+ def environment_cookbook_not_found
199
+ { "error" => [ "Could not load environment env cookbook apache" ] }
200
+ end
201
+
202
+ def environment_conflict
203
+ { "error" => [ "environments bag already exists" ] }
204
+ end
205
+
206
+ def environment_create_payload
207
+ {
208
+ "name" => "dev",
209
+ "attributes" => {
210
+ },
211
+ "json_class" => "Chef::Environment",
212
+ "description" => "",
213
+ "cookbook_versions" => {
214
+ },
215
+ "chef_type" => "environment"
216
+ }
217
+ end
218
+
219
+ def environment_update_payload
220
+ { "description" => "The Dev Environment" }
221
+ end
metadata CHANGED
@@ -1,121 +1,120 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spice
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
4
5
  prerelease:
5
- version: 0.5.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Dan Ryan
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-04-15 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: rest-client
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70110849680300 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: mixlib-authentication
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70110849680300
25
+ - !ruby/object:Gem::Dependency
26
+ name: mixlib-authentication
27
+ requirement: &70110849679800 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: yajl-ruby
39
34
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70110849679800
36
+ - !ruby/object:Gem::Dependency
37
+ name: yajl-ruby
38
+ requirement: &70110849679320 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :runtime
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: yard
50
45
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70110849679320
47
+ - !ruby/object:Gem::Dependency
48
+ name: yard
49
+ requirement: &70110849678760 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
51
+ requirements:
54
52
  - - ~>
55
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
56
54
  version: 0.6.4
57
55
  type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: rspec
61
56
  prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70110849678760
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ requirement: &70110849678260 !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
62
+ requirements:
65
63
  - - ~>
66
- - !ruby/object:Gem::Version
64
+ - !ruby/object:Gem::Version
67
65
  version: 2.5.0
68
66
  type: :development
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: webmock
72
67
  prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70110849678260
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: &70110849677800 !ruby/object:Gem::Requirement
74
72
  none: false
75
- requirements:
73
+ requirements:
76
74
  - - ~>
77
- - !ruby/object:Gem::Version
75
+ - !ruby/object:Gem::Version
78
76
  version: 1.6.2
79
77
  type: :development
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
82
- name: timecop
83
78
  prerelease: false
84
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70110849677800
80
+ - !ruby/object:Gem::Dependency
81
+ name: timecop
82
+ requirement: &70110849677300 !ruby/object:Gem::Requirement
85
83
  none: false
86
- requirements:
84
+ requirements:
87
85
  - - ~>
88
- - !ruby/object:Gem::Version
86
+ - !ruby/object:Gem::Version
89
87
  version: 0.3.5
90
88
  type: :development
91
- version_requirements: *id007
92
- - !ruby/object:Gem::Dependency
93
- name: webmock
94
89
  prerelease: false
95
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *70110849677300
91
+ - !ruby/object:Gem::Dependency
92
+ name: webmock
93
+ requirement: &70110849676800 !ruby/object:Gem::Requirement
96
94
  none: false
97
- requirements:
95
+ requirements:
98
96
  - - ~>
99
- - !ruby/object:Gem::Version
97
+ - !ruby/object:Gem::Version
100
98
  version: 1.6.2
101
99
  type: :development
102
- version_requirements: *id008
103
- description: Spice is a zesty Chef API wrapper. Its primary purpose is to let you easily integrate your apps with a Chef server easily. Spice provides support for the entire released Chef API
104
- email:
100
+ prerelease: false
101
+ version_requirements: *70110849676800
102
+ description: Spice is a zesty Chef API wrapper. Its primary purpose is to let you
103
+ easily integrate your apps with a Chef server easily. Spice provides support for
104
+ the entire released Chef API
105
+ email:
105
106
  - hi@iamdanryan.com
106
107
  executables: []
107
-
108
108
  extensions: []
109
-
110
109
  extra_rdoc_files: []
111
-
112
- files:
110
+ files:
113
111
  - .document
114
112
  - .gitignore
115
113
  - .rspec
116
114
  - .watchr
117
115
  - CHANGELOG.md
118
116
  - Gemfile
117
+ - Guardfile
119
118
  - LICENSE.txt
120
119
  - README.md
121
120
  - Rakefile
@@ -128,6 +127,7 @@ files:
128
127
  - lib/spice/cookbook.rb
129
128
  - lib/spice/core_ext/hash.rb
130
129
  - lib/spice/data_bag.rb
130
+ - lib/spice/environment.rb
131
131
  - lib/spice/mock.rb
132
132
  - lib/spice/node.rb
133
133
  - lib/spice/role.rb
@@ -140,6 +140,7 @@ files:
140
140
  - spec/spice/connection_spec.rb
141
141
  - spec/spice/cookbook_spec.rb
142
142
  - spec/spice/data_bag_spec.rb
143
+ - spec/spice/environment_spec.rb
143
144
  - spec/spice/node_spec.rb
144
145
  - spec/spice/role_spec.rb
145
146
  - spec/spice/search_spec.rb
@@ -149,6 +150,7 @@ files:
149
150
  - spec/support/cookbook_requests.rb
150
151
  - spec/support/data_bag_item_requests.rb
151
152
  - spec/support/data_bag_requests.rb
153
+ - spec/support/environment_requests.rb
152
154
  - spec/support/node_requests.rb
153
155
  - spec/support/requests.rb
154
156
  - spec/support/respond_with_matcher.rb
@@ -156,32 +158,29 @@ files:
156
158
  - spice.gemspec
157
159
  homepage: http://github.com/danryan/spice
158
160
  licenses: []
159
-
160
161
  post_install_message:
161
162
  rdoc_options: []
162
-
163
- require_paths:
163
+ require_paths:
164
164
  - lib
165
- required_ruby_version: !ruby/object:Gem::Requirement
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
166
  none: false
167
- requirements:
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- version: "0"
171
- required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  none: false
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: "0"
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
177
  requirements: []
178
-
179
178
  rubyforge_project: spice
180
- rubygems_version: 1.7.2
179
+ rubygems_version: 1.8.8
181
180
  signing_key:
182
181
  specification_version: 3
183
182
  summary: Chef API wrapper
184
- test_files:
183
+ test_files:
185
184
  - spec/spec_helper.rb
186
185
  - spec/spice/authentication_spec.rb
187
186
  - spec/spice/chef_spec.rb
@@ -189,6 +188,7 @@ test_files:
189
188
  - spec/spice/connection_spec.rb
190
189
  - spec/spice/cookbook_spec.rb
191
190
  - spec/spice/data_bag_spec.rb
191
+ - spec/spice/environment_spec.rb
192
192
  - spec/spice/node_spec.rb
193
193
  - spec/spice/role_spec.rb
194
194
  - spec/spice/search_spec.rb
@@ -198,8 +198,8 @@ test_files:
198
198
  - spec/support/cookbook_requests.rb
199
199
  - spec/support/data_bag_item_requests.rb
200
200
  - spec/support/data_bag_requests.rb
201
+ - spec/support/environment_requests.rb
201
202
  - spec/support/node_requests.rb
202
203
  - spec/support/requests.rb
203
204
  - spec/support/respond_with_matcher.rb
204
205
  - spec/support/role_requests.rb
205
- has_rdoc: