berkshelf 1.2.1 → 1.3.0.rc1

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 (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