berkshelf 2.0.7 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -264,7 +264,7 @@ Feature: install cookbooks from a Berksfile
264
264
  When I run `berks install`
265
265
  Then the output should contain:
266
266
  """
267
- No Berksfile or Berksfile.lock found at:
267
+ No Berksfile or Berksfile.lock found at '
268
268
  """
269
269
  And the CLI should exit with the status code for error "BerksfileNotFound"
270
270
 
@@ -6,11 +6,13 @@ module Berkshelf
6
6
  #
7
7
  # @return [Berksfile]
8
8
  def from_file(file)
9
- new(file).dsl_eval_file(file)
10
- rescue Errno::ENOENT => ex
11
- raise BerksfileNotFound, "No Berksfile or Berksfile.lock found at: #{file}"
12
- rescue => ex
13
- raise BerksfileReadError.new(ex)
9
+ raise BerksfileNotFound.new(file) unless File.exist?(file)
10
+
11
+ begin
12
+ new(file).dsl_eval_file(file)
13
+ rescue => ex
14
+ raise BerksfileReadError.new(ex)
15
+ end
14
16
  end
15
17
 
16
18
  # Copy all cached_cookbooks to the given directory. Each cookbook will be contained in
@@ -401,6 +403,8 @@ module Berkshelf
401
403
  # @option options [String] :path
402
404
  # a path to "vendor" the cached_cookbooks resolved by the resolver. Vendoring
403
405
  # is a technique for packaging all cookbooks resolved by a Berksfile.
406
+ # @option options [Boolean] :update_lockfile (true)
407
+ # a boolean method indicating whether we should update the lockfile
404
408
  #
405
409
  # @raise [Berkshelf::OutdatedCookbookSource]
406
410
  # if the lockfile constraints do not satisfy the Berskfile constraints
@@ -419,7 +423,7 @@ module Berkshelf
419
423
 
420
424
  self.class.vendor(@cached_cookbooks, options[:path]) if options[:path]
421
425
 
422
- lockfile.update(local_sources)
426
+ lockfile.update(local_sources) unless options[:update_lockfile] == false
423
427
 
424
428
  self.cached_cookbooks
425
429
  end
@@ -511,7 +515,7 @@ module Berkshelf
511
515
  # if an attempt to upload a cookbook which has been frozen on the target server is made
512
516
  # and the :halt_on_frozen option was true
513
517
  def upload(options = {})
514
- options = options.reverse_merge(force: false, freeze: true, skip_dependencies: false, halt_on_frozen: false)
518
+ options = options.reverse_merge(force: false, freeze: true, skip_dependencies: false, halt_on_frozen: false, update_lockfile: false)
515
519
 
516
520
  cached_cookbooks = install(options)
517
521
  upload_opts = options.slice(:force, :freeze)
@@ -186,7 +186,7 @@ module Berkshelf
186
186
  def inspect
187
187
  '#<Berkshelf::CookbookSource: ' << [
188
188
  "#{name} (#{version_constraint})",
189
- "locked_version: #{locked_version.inspect}",
189
+ "locked_version: #{locked_version ? locked_version.to_s : 'nil'}",
190
190
  "groups: #{groups}",
191
191
  "location: #{location || 'default'}>"
192
192
  ].join(', ')
@@ -19,7 +19,20 @@ module Berkshelf
19
19
  end
20
20
  end
21
21
 
22
- class BerksfileNotFound < BerkshelfError; status_code(100); end
22
+ class BerksfileNotFound < BerkshelfError
23
+ status_code(100)
24
+
25
+ # @param [#to_s] filepath
26
+ # the path where a Berksfile was not found
27
+ def initialize(filepath)
28
+ @filepath = File.dirname(File.expand_path(filepath)) rescue filepath
29
+ end
30
+
31
+ def to_s
32
+ "No Berksfile or Berksfile.lock found at '#{@filepath}'!"
33
+ end
34
+ end
35
+
23
36
  class NoVersionForConstraints < BerkshelfError; status_code(101); end
24
37
  class DuplicateLocationDefined < BerkshelfError; status_code(102); end
25
38
  class CookbookNotFound < BerkshelfError; status_code(103); end
@@ -1,3 +1,3 @@
1
1
  module Berkshelf
2
- VERSION = "2.0.7"
2
+ VERSION = "2.0.8"
3
3
  end
@@ -585,7 +585,7 @@ describe Berkshelf::Berksfile do
585
585
  Dir.stub(:glob).and_return(['/there-are/no-spaces/in-this/recipes/default.rb'])
586
586
  expect {
587
587
  subject.validate_files!(cookbook)
588
- }.to_not raise_error(Berkshelf::InvalidCookbookFiles)
588
+ }.to_not raise_error
589
589
  end
590
590
 
591
591
  it 'does not raise an exception with spaces in the path' do
@@ -7,7 +7,7 @@ describe Berkshelf::Formatters::Null do
7
7
  it "does not raise an error for :#{meth}" do
8
8
  expect {
9
9
  subject.send(meth)
10
- }.to_not raise_error(Berkshelf::AbstractFunction)
10
+ }.to_not raise_error
11
11
  end
12
12
 
13
13
  it "returns nil for :#{meth}" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.7
4
+ version: 2.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-07-12 00:00:00.000000000 Z
16
+ date: 2013-08-02 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: activesupport