berkshelf 1.2.1 → 1.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +1 -0
  2. data/{.rbenv-version → .ruby-version} +0 -0
  3. data/.travis.yml +5 -5
  4. data/berkshelf.gemspec +3 -7
  5. data/features/help.feature +20 -0
  6. data/features/install_command.feature +2 -0
  7. data/features/list_command.feature +1 -0
  8. data/features/step_definitions/filesystem_steps.rb +7 -8
  9. data/features/step_definitions/utility_steps.rb +6 -0
  10. data/features/upload_command.feature +2 -0
  11. data/generator_files/Gemfile.erb +1 -1
  12. data/generator_files/Vagrantfile.erb +51 -45
  13. data/lib/berkshelf/cli.rb +18 -8
  14. data/lib/berkshelf/community_rest.rb +2 -2
  15. data/lib/berkshelf/git.rb +1 -1
  16. data/lib/berkshelf/locations/git_location.rb +1 -1
  17. data/lib/berkshelf/version.rb +1 -1
  18. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json +1 -0
  19. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json +1 -0
  20. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_cookbook.json +1 -0
  21. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_version.json +1 -0
  22. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/returns_the_cookbook_and_version_information.json +1 -0
  23. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json +1 -0
  24. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CookbookNotFound_error_on_a_404_response.json +1 -0
  25. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/returns_the_version_number_of_the_latest_version_of_the_cookbook.json +1 -0
  26. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_satisfy/returns_the_version_number_of_the_best_solution.json +1 -0
  27. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json +1 -0
  28. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CookbookNotFound_error_on_a_404_response.json +1 -0
  29. data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/returns_an_array_containing_an_item_for_each_version.json +1 -0
  30. data/spec/fixtures/cassettes/Berkshelf_Resolver/ClassMethods/_initialize/adds_the_dependencies_of_the_source_as_sources.yml +3829 -0
  31. data/spec/spec_helper.rb +10 -3
  32. data/spec/support/matchers/file_system_matchers.rb +4 -2
  33. data/spec/unit/berkshelf/community_rest_spec.rb +108 -67
  34. data/spec/unit/berkshelf/config_spec.rb +1 -1
  35. data/spec/unit/berkshelf/errors_spec.rb +1 -10
  36. data/spec/unit/berkshelf/init_generator_spec.rb +2 -3
  37. data/spec/unit/berkshelf/location_spec.rb +2 -0
  38. data/spec/unit/berkshelf/resolver_spec.rb +10 -40
  39. metadata +43 -60
  40. data/.rvmrc +0 -1
  41. data/lib/berkshelf/vagrant.rb +0 -74
  42. data/lib/berkshelf/vagrant/action/clean.rb +0 -26
  43. data/lib/berkshelf/vagrant/action/install.rb +0 -49
  44. data/lib/berkshelf/vagrant/action/set_ui.rb +0 -17
  45. data/lib/berkshelf/vagrant/action/upload.rb +0 -41
  46. data/lib/berkshelf/vagrant/action/validate.rb +0 -30
  47. data/lib/berkshelf/vagrant/config.rb +0 -53
  48. data/lib/berkshelf/vagrant/errors.rb +0 -31
  49. data/lib/berkshelf/vagrant/middleware.rb +0 -52
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,7 @@ Spork.prefork do
7
7
  require 'pp'
8
8
  require 'rspec'
9
9
  require 'webmock/rspec'
10
+ require 'vcr'
10
11
 
11
12
  APP_ROOT = File.expand_path('../../', __FILE__)
12
13
  ENV["BERKSHELF_PATH"] = File.join(APP_ROOT, "tmp", "berkshelf")
@@ -14,6 +15,13 @@ Spork.prefork do
14
15
 
15
16
  Dir[File.join(APP_ROOT, "spec/support/**/*.rb")].each {|f| require f}
16
17
 
18
+ VCR.configure do |config|
19
+ config.configure_rspec_metadata!
20
+ config.cassette_library_dir = 'spec/fixtures/cassettes'
21
+ config.hook_into :webmock
22
+ config.default_cassette_options = { record: :new_episodes }
23
+ end
24
+
17
25
  RSpec.configure do |config|
18
26
  config.include Berkshelf::RSpec::FileSystemMatchers
19
27
  config.include JsonSpec::Helpers
@@ -74,7 +82,7 @@ Spork.prefork do
74
82
  end
75
83
 
76
84
  def generate_fake_git_remote(uri, options = {})
77
- remote_bucket = Pathname.new(File.dirname(__FILE__)).join('tmp', 'remote_repos')
85
+ remote_bucket = Pathname.new(::File.dirname(__FILE__)).join('tmp', 'remote_repos')
78
86
  FileUtils.mkdir_p(remote_bucket)
79
87
 
80
88
  repo_name = uri.to_s.split('/').last.split('.')
@@ -96,7 +104,7 @@ Spork.prefork do
96
104
  run! "echo '# a change!' >> content_file"
97
105
  run! "git add ."
98
106
  run "git commit -am 'A commit.'"
99
- options[:tags].each do |tag|
107
+ options[:tags].each do |tag|
100
108
  run! "echo '#{tag}' > content_file"
101
109
  run! "git add content_file"
102
110
  run "git commit -am '#{tag} content'"
@@ -149,7 +157,6 @@ end
149
157
 
150
158
  Spork.each_run do
151
159
  require 'berkshelf'
152
- require 'berkshelf/vagrant'
153
160
 
154
161
  module Berkshelf
155
162
  class GitLocation
@@ -3,7 +3,7 @@
3
3
  module Berkshelf
4
4
  module RSpec
5
5
  module FileSystemMatchers
6
- class File
6
+ class File < ::File
7
7
  def initialize(name, &block)
8
8
  @contents = []
9
9
  @negative_contents = []
@@ -58,7 +58,9 @@ module Berkshelf
58
58
  end
59
59
 
60
60
  def file(name, &block)
61
- @tree[name] = File.new(location(name), &block)
61
+ silence_warnings do
62
+ @tree[name] = Berkshelf::RSpec::FileSystemMatchers::File.new(location(name), &block)
63
+ end
62
64
  end
63
65
 
64
66
  def no_file(name)
@@ -1,39 +1,60 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Berkshelf::CommunityREST do
4
- let(:show_nginx_cookbook) do
5
- {
6
- "maintainer" => "opscode",
7
- "updated_at" => "2013-02-06T02:06:21Z",
8
- "category" => "Web Servers",
9
- "external_url" => "github.com/opscode-cookbooks/nginx",
10
- "latest_version" => "http://cookbooks.opscode.com/api/v1/cookbooks/nginx/versions/1_3_0",
11
- "created_at" => "2009-10-25T23:52:41Z",
12
- "average_rating" => 3.875,
13
- "name" => "nginx",
14
- "versions" => [
15
- "http://cookbooks.opscode.com/api/v1/cookbooks/nginx/versions/1_3_0",
16
- "http://cookbooks.opscode.com/api/v1/cookbooks/nginx/versions/1_2_0",
17
- "http://cookbooks.opscode.com/api/v1/cookbooks/nginx/versions/1_1_0",
18
- "http://cookbooks.opscode.com/api/v1/cookbooks/nginx/versions/1_0_0"
19
- ],
20
- "description" => "Installs and configures nginx"
21
- }
3
+ describe Berkshelf::CommunityREST, vcr: { record: :new_episodes, serialize_with: :json } do
4
+ describe '.unpack' do
5
+ let(:target) { '/foo/bar' }
6
+ let(:destination) { '/destination/bar' }
7
+ let(:file) { double('file') }
8
+ let(:gzip_reader) { double('gzip_reader') }
9
+
10
+ before do
11
+ ::File.stub(:open).with(target, 'rb').and_return(file)
12
+ Zlib::GzipReader.stub(:new).with(file).and_return(gzip_reader)
13
+ Archive::Tar::Minitar.stub(:unpack).with(gzip_reader, destination)
14
+ end
15
+
16
+ it 'unpacks the tar' do
17
+ ::File.should_receive(:open).with(target, 'rb')
18
+ Zlib::GzipReader.should_receive(:new).with(file)
19
+ Archive::Tar::Minitar.should_receive(:unpack).with(gzip_reader, destination)
20
+
21
+ expect(described_class.unpack(target, destination)).to eq(destination)
22
+ end
23
+ end
24
+
25
+ describe '.uri_escape_version' do
26
+ it 'returns a string' do
27
+ expect(described_class.uri_escape_version(nil)).to be_a(String)
28
+ end
29
+
30
+ it 'converts a version to it\'s underscored version' do
31
+ expect(described_class.uri_escape_version('1.1.2')).to eq('1_1_2')
32
+ end
33
+
34
+ it 'works when the version has more than three points' do
35
+ expect(described_class.uri_escape_version('1.1.1.2')).to eq('1_1_1_2')
36
+ end
37
+
38
+ it 'works when the version has less than three points' do
39
+ expect(described_class.uri_escape_version('1.2')).to eq('1_2')
40
+ end
22
41
  end
23
42
 
24
- describe "ClassMethods" do
25
- subject { described_class }
43
+ describe '.version_from_uri' do
44
+ it 'returns a string' do
45
+ expect(described_class.version_from_uri(nil)).to be_a(String)
46
+ end
26
47
 
27
- describe "::unpack" do
28
- pending
48
+ it 'extracts the version from the URL' do
49
+ expect(described_class.version_from_uri('/api/v1/cookbooks/nginx/versions/1_1_2')).to eq('1.1.2')
29
50
  end
30
51
 
31
- describe "::uri_escape_version" do
32
- pending
52
+ it 'works when the version has more than three points' do
53
+ expect(described_class.version_from_uri('/api/v1/cookbooks/nginx/versions/1_1_1_2')).to eq('1.1.1.2')
33
54
  end
34
55
 
35
- describe "::version_from_uri" do
36
- pending
56
+ it 'works when the version has less than three points' do
57
+ expect(described_class.version_from_uri('/api/v1/cookbooks/nginx/versions/1_2')).to eq('1.2')
37
58
  end
38
59
  end
39
60
 
@@ -43,78 +64,98 @@ describe Berkshelf::CommunityREST do
43
64
  described_class.new(api_uri)
44
65
  end
45
66
 
46
- describe "#download" do
47
- pending
48
- end
67
+ describe '#download' do
68
+ let(:archive) { double('archive', path: '/foo/bar', unlink: true) }
49
69
 
50
- describe "#find" do
51
- pending
52
- end
70
+ before do
71
+ subject.stub(:stream).with(any_args()).and_return(archive)
72
+ Berkshelf::CommunityREST.stub(:unpack)
73
+ end
53
74
 
54
- describe "#latest_version" do
55
- it "returns the version number of the latest version of the cookbook" do
56
- stub_request(:get, File.join(api_uri, "nginx")).
57
- to_return(status: 200, body: show_nginx_cookbook)
75
+ it 'unpacks the archive' do
76
+ Berkshelf::CommunityREST.should_receive(:unpack).with('/foo/bar').once
77
+ archive.should_receive(:unlink).once
58
78
 
59
- subject.latest_version("nginx").should eql("1.3.0")
79
+ subject.download('nginx', '1.4.0')
60
80
  end
81
+ end
61
82
 
62
- it "raises a CookbookNotFound error on a 404 response" do
63
- stub_request(:get, File.join(api_uri, "not_existant")).
64
- to_return(status: 404, body: {})
83
+ describe '#find' do
84
+ it 'returns the cookbook and version information' do
85
+ result = subject.find('nginx', '1.4.0')
65
86
 
87
+ expect(result.cookbook).to eq('http://cookbooks.opscode.com/api/v1/cookbooks/nginx')
88
+ expect(result.version).to eq('1.4.0')
89
+ end
90
+
91
+ it 'raises a CookbookNotFound error on a 404 response for a non-existent cookbook' do
66
92
  expect {
67
- subject.latest_version("not_existant")
93
+ subject.find('not_a_real_cookbook_that_anyone_should_ever_make', '0.1.0')
68
94
  }.to raise_error(Berkshelf::CookbookNotFound)
69
95
  end
70
96
 
71
- it "raises a CommunitySiteError error on any non 200 or 404 response" do
72
- stub_request(:get, File.join(api_uri, "not_existant")).
73
- to_return(status: 500, body: {})
97
+ it 'raises a CookbookNotFound error on a 404 response for a non-existent version' do
98
+ expect {
99
+ subject.find('nginx', '0.0.0')
100
+ }.to raise_error(Berkshelf::CookbookNotFound)
101
+ end
74
102
 
103
+ # @warn if you re-record the VCR cassettes, you'll need to manually change the
104
+ # HTTP Response Code in the YAML file to 500
105
+ it 'raises a CommunitySiteError error on any non 200 or 404 response' do
75
106
  expect {
76
- subject.latest_version("not_existant")
107
+ subject.find('not_a_real_cookbook_that_anyone_should_ever_make', '0.0.0')
77
108
  }.to raise_error(Berkshelf::CommunitySiteError)
78
109
  end
79
110
  end
80
111
 
81
- describe "#versions" do
82
- it "returns an array containing an item for each version" do
83
- stub_request(:get, File.join(api_uri, "nginx")).
84
- to_return(status: 200, body: show_nginx_cookbook)
112
+ describe '#latest_version' do
113
+ it 'returns the version number of the latest version of the cookbook' do
114
+ subject.latest_version('nginx').should eql('1.4.0')
115
+ end
116
+
117
+ it 'raises a CookbookNotFound error on a 404 response' do
118
+ expect {
119
+ subject.latest_version('not_a_real_cookbook_that_anyone_should_ever_make')
120
+ }.to raise_error(Berkshelf::CookbookNotFound)
121
+ end
85
122
 
86
- subject.versions("nginx").should have(4).versions
123
+ # @warn if you re-record the VCR cassettes, you'll need to manually change the
124
+ # HTTP Response Code in the YAML file to 500
125
+ it 'raises a CommunitySiteError error on any non 200 or 404 response' do
126
+ expect {
127
+ subject.latest_version('not_a_real_cookbook_that_anyone_should_ever_make')
128
+ }.to raise_error(Berkshelf::CommunitySiteError)
87
129
  end
130
+ end
88
131
 
89
- it "raises a CookbookNotFound error on a 404 response" do
90
- stub_request(:get, File.join(api_uri, "not_existant")).
91
- to_return(status: 404, body: {})
132
+ describe '#versions' do
133
+ it 'returns an array containing an item for each version' do
134
+ subject.versions('nginx').should have(24).versions
135
+ end
92
136
 
137
+ it 'raises a CookbookNotFound error on a 404 response' do
93
138
  expect {
94
- subject.versions("not_existant")
139
+ subject.versions('not_a_real_cookbook_that_anyone_should_ever_make')
95
140
  }.to raise_error(Berkshelf::CookbookNotFound)
96
141
  end
97
142
 
98
- it "raises a CommunitySiteError error on any non 200 or 404 response" do
99
- stub_request(:get, File.join(api_uri, "not_existant")).
100
- to_return(status: 500, body: {})
101
-
143
+ # @warn if you re-record the VCR cassettes, you'll need to manually change the
144
+ # HTTP Response Code in the YAML file to 500
145
+ it 'raises a CommunitySiteError error on any non 200 or 404 response' do
102
146
  expect {
103
- subject.versions("not_existant")
147
+ subject.versions('not_a_real_cookbook_that_anyone_should_ever_make')
104
148
  }.to raise_error(Berkshelf::CommunitySiteError)
105
149
  end
106
150
  end
107
151
 
108
- describe "#satisfy" do
109
- it "returns the version number of the best solution" do
110
- stub_request(:get, File.join(api_uri, "nginx")).
111
- to_return(status: 200, body: show_nginx_cookbook)
112
-
113
- subject.satisfy("nginx", "= 1.1.0").should eql("1.1.0")
152
+ describe '#satisfy' do
153
+ it 'returns the version number of the best solution' do
154
+ subject.satisfy('nginx', '= 1.1.0').should eql('1.1.0')
114
155
  end
115
156
  end
116
157
 
117
- describe "#stream" do
158
+ describe '#stream' do
118
159
  pending
119
160
  end
120
161
  end
@@ -11,7 +11,7 @@ describe Berkshelf::Config do
11
11
 
12
12
  context "when the file does not exist" do
13
13
  before :each do
14
- File.stub exists?: false
14
+ ::File.stub exists?: false
15
15
  end
16
16
 
17
17
  it { should be_nil }
@@ -1,14 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "berkshelf errors" do
4
- describe Berkshelf::VagrantWrapperError do
5
- subject { described_class }
6
-
7
- it "proxies messages to the original exception" do
8
- original = double('original_error')
9
- original.should_receive(:a_message)
10
-
11
- subject.new(original).a_message
12
- end
13
- end
4
+ pending
14
5
  end
@@ -20,7 +20,6 @@ describe Berkshelf::InitGenerator do
20
20
  contains "gem 'berkshelf'"
21
21
  end
22
22
  file "Vagrantfile" do
23
- contains "require 'berkshelf/vagrant'"
24
23
  contains "recipe[some_cookbook::default]"
25
24
  end
26
25
  no_file "chefignore"
@@ -46,10 +45,10 @@ describe Berkshelf::InitGenerator do
46
45
  context "with a metadata entry in the Berksfile" do
47
46
  before(:each) do
48
47
  Dir.mkdir target
49
- File.open(target.join("metadata.rb"), 'w+') do |f|
48
+ ::File.open(target.join("metadata.rb"), 'w+') do |f|
50
49
  f.write ""
51
50
  end
52
-
51
+
53
52
  capture(:stdout) {
54
53
  subject.new([target], metadata_entry: true).invoke_all
55
54
  }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  module Berkshelf
2
4
  describe Location do
3
5
  describe "ClassMethods Module" do
@@ -1,10 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Berkshelf::Resolver, :chef_server do
4
- # These tests should be properly mocked and WebMock should be enabled
5
- before(:all) { WebMock.disable! }
6
- after(:all) { WebMock.enable! }
7
-
3
+ describe Berkshelf::Resolver, :chef_server, vcr: { record: :new_episodes, serialize_with: :yaml } do
8
4
  let(:source) do
9
5
  double('source',
10
6
  name: 'mysql',
@@ -14,22 +10,7 @@ describe Berkshelf::Resolver, :chef_server do
14
10
  name: 'mysql-1.2.4',
15
11
  cookbook_name: 'mysql',
16
12
  version: '1.2.4',
17
- dependencies: { "nginx" => ">= 0.1.0", "artifact" => "~> 0.10.0" }
18
- ),
19
- location: double('location', validate_cached: true)
20
- )
21
- end
22
-
23
- let(:source_two) do
24
- double('source-two',
25
- name: 'nginx',
26
- version_constraint: Solve::Constraint.new('= 0.101.2'),
27
- downloaded?: true,
28
- cached_cookbook: double('nginx-cookbook',
29
- name: 'nginx-0.101.2',
30
- cookbook_name: 'nginx',
31
- version: '0.101.2',
32
- dependencies: Hash.new
13
+ dependencies: { "nginx" => ">= 0.1.0" }
33
14
  ),
34
15
  location: double('location', validate_cached: true)
35
16
  )
@@ -42,32 +23,21 @@ describe Berkshelf::Resolver, :chef_server do
42
23
  let(:downloader) { Berkshelf::Downloader.new(Berkshelf.cookbook_store) }
43
24
 
44
25
  it "adds the specified sources to the sources hash" do
45
- resolver = subject.new(downloader, sources: source)
26
+ resolver = subject.new(downloader, sources: [source], skip_dependencies: true)
46
27
 
47
28
  resolver.should have_source(source.name)
48
29
  end
49
30
 
50
- it "adds the dependencies of the source as sources" do
51
- resolver = subject.new(downloader, sources: source)
52
-
53
- resolver.should have_source("nginx")
54
- resolver.should have_source("artifact")
55
- end
56
-
57
31
  it "should not add dependencies if requested" do
58
- resolver = subject.new(downloader, sources: source, skip_dependencies: true)
32
+ resolver = subject.new(downloader, sources: [source], skip_dependencies: true)
59
33
 
60
34
  resolver.should_not have_source("nginx")
61
- resolver.should_not have_source("artifact")
62
35
  end
63
36
 
64
- context "given an array of sources" do
65
- it "adds each source to the sources hash" do
66
- sources = [source]
67
- resolver = subject.new(downloader, sources: sources)
37
+ it "adds the dependencies of the source as sources" do
38
+ resolver = subject.new(downloader, sources: [source])
68
39
 
69
- resolver.should have_source(sources[0].name)
70
- end
40
+ resolver.should have_source("nginx")
71
41
  end
72
42
  end
73
43
  end
@@ -79,7 +49,7 @@ describe Berkshelf::Resolver, :chef_server do
79
49
  let(:package_version) { double('package-version', dependencies: Array.new) }
80
50
 
81
51
  it "adds the source to the instance of resolver" do
82
- subject.add_source(source)
52
+ subject.add_source(source, false)
83
53
 
84
54
  subject.sources.should include(source)
85
55
  end
@@ -114,7 +84,7 @@ describe Berkshelf::Resolver, :chef_server do
114
84
  end
115
85
 
116
86
  describe "#get_source" do
117
- before(:each) { subject.add_source(source) }
87
+ before { subject.add_source(source, false) }
118
88
 
119
89
  context "given a string representation of the source to retrieve" do
120
90
  it "returns the source of the same name" do
@@ -124,7 +94,7 @@ describe Berkshelf::Resolver, :chef_server do
124
94
  end
125
95
 
126
96
  describe "#has_source?" do
127
- before(:each) { subject.add_source(source) }
97
+ before { subject.add_source(source, false) }
128
98
 
129
99
  it "returns the source of the given name" do
130
100
  subject.has_source?(source.name).should be_true
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
5
- prerelease:
4
+ version: 1.3.0.rc1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jamie Winsor
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-03-07 00:00:00.000000000 Z
15
+ date: 2013-03-20 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: yajl-ruby
@@ -35,17 +35,17 @@ dependencies:
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  none: false
37
37
  requirements:
38
- - - ! '>='
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '3.2'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  none: false
45
45
  requirements:
46
- - - ! '>='
46
+ - - ~>
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: '3.2'
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: mixlib-shellout
51
51
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +101,7 @@ dependencies:
101
101
  requirements:
102
102
  - - ! '>='
103
103
  - !ruby/object:Gem::Version
104
- version: 0.8.3
104
+ version: 0.8.5
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,7 +109,7 @@ dependencies:
109
109
  requirements:
110
110
  - - ! '>='
111
111
  - !ruby/object:Gem::Version
112
- version: 0.8.3
112
+ version: 0.8.5
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: chozo
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -238,38 +238,6 @@ dependencies:
238
238
  - - ! '>='
239
239
  - !ruby/object:Gem::Version
240
240
  version: '0'
241
- - !ruby/object:Gem::Dependency
242
- name: moneta
243
- requirement: !ruby/object:Gem::Requirement
244
- none: false
245
- requirements:
246
- - - ~>
247
- - !ruby/object:Gem::Version
248
- version: 0.6.0
249
- type: :runtime
250
- prerelease: false
251
- version_requirements: !ruby/object:Gem::Requirement
252
- none: false
253
- requirements:
254
- - - ~>
255
- - !ruby/object:Gem::Version
256
- version: 0.6.0
257
- - !ruby/object:Gem::Dependency
258
- name: net-ssh-gateway
259
- requirement: !ruby/object:Gem::Requirement
260
- none: false
261
- requirements:
262
- - - '='
263
- - !ruby/object:Gem::Version
264
- version: 1.1.0
265
- type: :runtime
266
- prerelease: false
267
- version_requirements: !ruby/object:Gem::Requirement
268
- none: false
269
- requirements:
270
- - - '='
271
- - !ruby/object:Gem::Version
272
- version: 1.1.0
273
241
  - !ruby/object:Gem::Dependency
274
242
  name: aruba
275
243
  requirement: !ruby/object:Gem::Requirement
@@ -415,13 +383,13 @@ dependencies:
415
383
  - !ruby/object:Gem::Version
416
384
  version: '0'
417
385
  - !ruby/object:Gem::Dependency
418
- name: vagrant
386
+ name: vcr
419
387
  requirement: !ruby/object:Gem::Requirement
420
388
  none: false
421
389
  requirements:
422
390
  - - ~>
423
391
  - !ruby/object:Gem::Version
424
- version: 1.0.6
392
+ version: 2.4.0
425
393
  type: :development
426
394
  prerelease: false
427
395
  version_requirements: !ruby/object:Gem::Requirement
@@ -429,7 +397,7 @@ dependencies:
429
397
  requirements:
430
398
  - - ~>
431
399
  - !ruby/object:Gem::Version
432
- version: 1.0.6
400
+ version: 2.4.0
433
401
  description: Manages a Cookbook's, or an Application's, Cookbook dependencies
434
402
  email:
435
403
  - reset@riotgames.com
@@ -443,8 +411,7 @@ extra_rdoc_files: []
443
411
  files:
444
412
  - .cane
445
413
  - .gitignore
446
- - .rbenv-version
447
- - .rvmrc
414
+ - .ruby-version
448
415
  - .travis.yml
449
416
  - CHANGELOG.md
450
417
  - CONTRIBUTING.md
@@ -461,6 +428,7 @@ files:
461
428
  - features/cookbook_command.feature
462
429
  - features/default_locations.feature
463
430
  - features/groups_install.feature
431
+ - features/help.feature
464
432
  - features/init_command.feature
465
433
  - features/install_command.feature
466
434
  - features/json_formatter.feature
@@ -534,20 +502,24 @@ files:
534
502
  - lib/berkshelf/resolver.rb
535
503
  - lib/berkshelf/thor.rb
536
504
  - lib/berkshelf/ui.rb
537
- - lib/berkshelf/vagrant.rb
538
- - lib/berkshelf/vagrant/action/clean.rb
539
- - lib/berkshelf/vagrant/action/install.rb
540
- - lib/berkshelf/vagrant/action/set_ui.rb
541
- - lib/berkshelf/vagrant/action/upload.rb
542
- - lib/berkshelf/vagrant/action/validate.rb
543
- - lib/berkshelf/vagrant/config.rb
544
- - lib/berkshelf/vagrant/errors.rb
545
- - lib/berkshelf/vagrant/middleware.rb
546
505
  - lib/berkshelf/version.rb
547
506
  - lib/thor/monkies.rb
548
507
  - lib/thor/monkies/hash_with_indifferent_access.rb
549
508
  - lib/thor/monkies/shell.rb
550
509
  - spec/fixtures/Berksfile
510
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json
511
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
512
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_cookbook.json
513
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_version.json
514
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/returns_the_cookbook_and_version_information.json
515
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
516
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CookbookNotFound_error_on_a_404_response.json
517
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/returns_the_version_number_of_the_latest_version_of_the_cookbook.json
518
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_satisfy/returns_the_version_number_of_the_best_solution.json
519
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
520
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CookbookNotFound_error_on_a_404_response.json
521
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/returns_an_array_containing_an_item_for_each_version.json
522
+ - spec/fixtures/cassettes/Berkshelf_Resolver/ClassMethods/_initialize/adds_the_dependencies_of_the_source_as_sources.yml
551
523
  - spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md
552
524
  - spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb
553
525
  - spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb
@@ -619,12 +591,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
619
591
  required_rubygems_version: !ruby/object:Gem::Requirement
620
592
  none: false
621
593
  requirements:
622
- - - ! '>='
594
+ - - ! '>'
623
595
  - !ruby/object:Gem::Version
624
- version: '0'
625
- segments:
626
- - 0
627
- hash: -3254137740807236813
596
+ version: 1.3.1
628
597
  requirements: []
629
598
  rubyforge_project:
630
599
  rubygems_version: 1.8.24
@@ -637,6 +606,7 @@ test_files:
637
606
  - features/cookbook_command.feature
638
607
  - features/default_locations.feature
639
608
  - features/groups_install.feature
609
+ - features/help.feature
640
610
  - features/init_command.feature
641
611
  - features/install_command.feature
642
612
  - features/json_formatter.feature
@@ -658,6 +628,19 @@ test_files:
658
628
  - features/upload_command.feature
659
629
  - features/vendor_install.feature
660
630
  - spec/fixtures/Berksfile
631
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json
632
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
633
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_cookbook.json
634
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_version.json
635
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/returns_the_cookbook_and_version_information.json
636
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
637
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CookbookNotFound_error_on_a_404_response.json
638
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/returns_the_version_number_of_the_latest_version_of_the_cookbook.json
639
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_satisfy/returns_the_version_number_of_the_best_solution.json
640
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
641
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CookbookNotFound_error_on_a_404_response.json
642
+ - spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/returns_an_array_containing_an_item_for_each_version.json
643
+ - spec/fixtures/cassettes/Berkshelf_Resolver/ClassMethods/_initialize/adds_the_dependencies_of_the_source_as_sources.yml
661
644
  - spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md
662
645
  - spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb
663
646
  - spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb