bundler 1.3.5 → 1.3.6
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.
Potentially problematic release.
This version of bundler might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/.travis.yml +7 -3
- data/CHANGELOG.md +21 -0
- data/ISSUES.md +2 -2
- data/LICENSE.md +1 -1
- data/Rakefile +4 -3
- data/bin/bundle +6 -1
- data/bundler.gemspec +1 -1
- data/lib/bundler.rb +2 -4
- data/lib/bundler/cli.rb +13 -17
- data/lib/bundler/definition.rb +1 -1
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/dsl.rb +6 -5
- data/lib/bundler/fetcher.rb +6 -1
- data/lib/bundler/friendly_errors.rb +6 -0
- data/lib/bundler/gem_helper.rb +1 -2
- data/lib/bundler/installer.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +1 -1
- data/lib/bundler/rubygems_integration.rb +23 -11
- data/lib/bundler/source/git.rb +3 -2
- data/lib/bundler/source/rubygems.rb +11 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/lib/bundler/ui.rb +4 -0
- data/lib/bundler/version.rb +1 -1
- data/man/bundle-exec.ronn +24 -6
- data/man/bundle-install.ronn +1 -1
- data/man/bundle.ronn +1 -1
- data/man/gemfile.5.ronn +1 -2
- data/spec/bundler/cli_rspec.rb +7 -2
- data/spec/bundler/dsl_spec.rb +4 -4
- data/spec/bundler/gem_helper_spec.rb +5 -6
- data/spec/install/gems/dependency_api_spec.rb +34 -0
- data/spec/install/gems/post_install_spec.rb +3 -3
- data/spec/install/gems/simple_case_spec.rb +16 -0
- data/spec/install/gems/win32_spec.rb +1 -1
- data/spec/install/git_spec.rb +1 -1
- data/spec/install/security_policy_spec.rb +10 -11
- data/spec/integration/inject.rb +1 -1
- data/spec/lock/git_spec.rb +0 -1
- data/spec/lock/lockfile_spec.rb +29 -5
- data/spec/other/binstubs_spec.rb +16 -3
- data/spec/other/bundle_ruby_spec.rb +1 -1
- data/spec/other/check_spec.rb +1 -1
- data/spec/other/clean_spec.rb +2 -2
- data/spec/other/exec_spec.rb +0 -1
- data/spec/other/init_spec.rb +0 -1
- data/spec/other/outdated_spec.rb +0 -2
- data/spec/other/platform_spec.rb +2 -2
- data/spec/quality_spec.rb +27 -2
- data/spec/realworld/dependency_api_spec.rb +0 -1
- data/spec/resolver/basic_spec.rb +1 -1
- data/spec/runtime/setup_spec.rb +4 -3
- data/spec/runtime/with_clean_env_spec.rb +0 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/support/artifice/endpoint_host_redirect.rb +15 -0
- data/spec/support/builders.rb +4 -2
- data/spec/support/permissions.rb +11 -0
- data/spec/update/gems_spec.rb +3 -3
- data/spec/update/git_spec.rb +2 -2
- data/spec/update/source_spec.rb +0 -1
- metadata +11 -13
| @@ -13,7 +13,7 @@ Gem::Specification.new do |spec| | |
| 13 13 | 
             
              spec.homepage      = ""
         | 
| 14 14 | 
             
              spec.license       = "MIT"
         | 
| 15 15 |  | 
| 16 | 
            -
              spec.files         = `git ls-files`.split( | 
| 16 | 
            +
              spec.files         = `git ls-files -z`.split("\x0")
         | 
| 17 17 | 
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| 18 18 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              spec.require_paths = ["lib"]
         | 
    
        data/lib/bundler/ui.rb
    CHANGED
    
    
    
        data/lib/bundler/version.rb
    CHANGED
    
    | @@ -2,5 +2,5 @@ module Bundler | |
| 2 2 | 
             
              # We're doing this because we might write tests that deal
         | 
| 3 3 | 
             
              # with other versions of bundler and we are unsure how to
         | 
| 4 4 | 
             
              # handle this better.
         | 
| 5 | 
            -
              VERSION = "1.3. | 
| 5 | 
            +
              VERSION = "1.3.6" unless defined?(::Bundler::VERSION)
         | 
| 6 6 | 
             
            end
         | 
    
        data/man/bundle-exec.ronn
    CHANGED
    
    | @@ -58,17 +58,35 @@ It also modifies Rubygems: | |
| 58 58 |  | 
| 59 59 | 
             
            ### Shelling out
         | 
| 60 60 |  | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 61 | 
            +
            Any Ruby code that opens a subshell (like `system`, backticks, or `%x{}`) will
         | 
| 62 | 
            +
            automatically use the current Bundler environment. If you need to shell out to
         | 
| 63 | 
            +
            a Ruby command that is not part of your current bundle, use the
         | 
| 64 | 
            +
            `with_clean_env` method with a block. Any subshells created inside the block
         | 
| 65 | 
            +
            will be given the environment present before Bundler was activated. For
         | 
| 66 | 
            +
            example, Homebrew commands run Ruby, but don't work inside a bundle:
         | 
| 67 67 |  | 
| 68 68 | 
             
                Bundler.with_clean_env do
         | 
| 69 69 | 
             
                  `brew install wget`
         | 
| 70 70 | 
             
                end
         | 
| 71 71 |  | 
| 72 | 
            +
            Using `with_clean_env` is also necessary if you are shelling out to a different
         | 
| 73 | 
            +
            bundle. Any Bundler commands run in a subshell will inherit the current
         | 
| 74 | 
            +
            Gemfile, so commands that need to run in the context of a different bundle also
         | 
| 75 | 
            +
            need to use `with_clean_env`.
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                Bundler.with_clean_env do
         | 
| 78 | 
            +
                  Dir.chdir "/other/bundler/project" do
         | 
| 79 | 
            +
                    `bundle exec ./script`
         | 
| 80 | 
            +
                  end
         | 
| 81 | 
            +
                end
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            Bundler provides convenience helpers that wrap `system` and `exec`, and they
         | 
| 84 | 
            +
            can be used like this:
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                Bundler.clean_system('brew install wget')
         | 
| 87 | 
            +
                Bundler.clean_exec('brew install wget')
         | 
| 88 | 
            +
             | 
| 89 | 
            +
             | 
| 72 90 | 
             
            ## RUBYGEMS PLUGINS
         | 
| 73 91 |  | 
| 74 92 | 
             
            At present, the Rubygems plugin system requires all files
         | 
    
        data/man/bundle-install.ronn
    CHANGED
    
    | @@ -321,7 +321,7 @@ evaluates the gems currently being used to satisfy its requirements: | |
| 321 321 | 
             
                also used to satisfy a dependency in `activemerchant`,
         | 
| 322 322 | 
             
                which is not being updated
         | 
| 323 323 | 
             
              * `rack ~> 1.1.0`:
         | 
| 324 | 
            -
                not currently being used to  | 
| 324 | 
            +
                not currently being used to satisfy another dependency
         | 
| 325 325 |  | 
| 326 326 | 
             
            Because you did not explicitly ask to update `activemerchant`,
         | 
| 327 327 | 
             
            you would not expect it to suddenly stop working after updating
         | 
    
        data/man/bundle.ronn
    CHANGED
    
    
    
        data/man/gemfile.5.ronn
    CHANGED
    
    | @@ -196,8 +196,7 @@ as they would for a normal gem. | |
| 196 196 | 
             
            A git repository `SHOULD` have at least one file, at the root of the
         | 
| 197 197 | 
             
            directory containing the gem, with the extension `.gemspec`. This file
         | 
| 198 198 | 
             
            `MUST` contain a valid gem specification, as expected by the `gem build`
         | 
| 199 | 
            -
            command. | 
| 200 | 
            -
            the git repository itself and any built-in functionality of Ruby or Rubygems.
         | 
| 199 | 
            +
            command.
         | 
| 201 200 |  | 
| 202 201 | 
             
            If a git repository does not have a `.gemspec`, bundler will attempt to
         | 
| 203 202 | 
             
            create one, but it will not contain any dependencies, executables, or
         | 
    
        data/spec/bundler/cli_rspec.rb
    CHANGED
    
    | @@ -1,9 +1,14 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 |  | 
| 4 | 
            -
            describe  | 
| 5 | 
            -
              it  | 
| 4 | 
            +
            describe "bundle executable" do
         | 
| 5 | 
            +
              it "returns non-zero exit status when passed unrecognized options" do
         | 
| 6 6 | 
             
                bundle '--invalid_argument', :exitstatus => true
         | 
| 7 7 | 
             
                expect(exitstatus).to_not be_zero
         | 
| 8 8 | 
             
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              it "returns non-zero exit status when passed unrecognized task" do
         | 
| 11 | 
            +
                bundle 'unrecognized-tast', :exitstatus => true
         | 
| 12 | 
            +
                expect(exitstatus).to_not be_zero
         | 
| 13 | 
            +
              end
         | 
| 9 14 | 
             
            end
         | 
    
        data/spec/bundler/dsl_spec.rb
    CHANGED
    
    | @@ -6,7 +6,7 @@ describe Bundler::Dsl do | |
| 6 6 | 
             
                Bundler::Source::Rubygems.stub(:new){ @rubygems }
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 | 
            -
              describe  | 
| 9 | 
            +
              describe "#_normalize_options" do
         | 
| 10 10 | 
             
                it "converts :github to :git" do
         | 
| 11 11 | 
             
                  subject.gem("sparks", :github => "indirect/sparks")
         | 
| 12 12 | 
             
                  github_uri = "git://github.com/indirect/sparks.git"
         | 
| @@ -32,8 +32,8 @@ describe Bundler::Dsl do | |
| 32 32 | 
             
                end
         | 
| 33 33 | 
             
              end
         | 
| 34 34 |  | 
| 35 | 
            -
              describe  | 
| 36 | 
            -
                it  | 
| 35 | 
            +
              describe "#method_missing" do
         | 
| 36 | 
            +
                it "raises an error for unknown DSL methods" do
         | 
| 37 37 | 
             
                  Bundler.should_receive(:read_file).with("Gemfile").and_return("unknown")
         | 
| 38 38 | 
             
                  error_msg = "Undefined local variable or method `unknown'" \
         | 
| 39 39 | 
             
                    " for Gemfile\\s+from Gemfile:1"
         | 
| @@ -51,7 +51,7 @@ describe Bundler::Dsl do | |
| 51 51 | 
             
              end
         | 
| 52 52 |  | 
| 53 53 | 
             
              describe "syntax errors" do
         | 
| 54 | 
            -
                it "raise a Bundler::GemfileError" do
         | 
| 54 | 
            +
                it "will raise a Bundler::GemfileError" do
         | 
| 55 55 | 
             
                  gemfile "gem 'foo', :path => /unquoted/string/syntax/error"
         | 
| 56 56 | 
             
                  expect { Bundler::Dsl.evaluate(bundled_app("Gemfile"), nil, true) }.
         | 
| 57 57 | 
             
                    to raise_error(Bundler::GemfileError)
         | 
| @@ -62,7 +62,7 @@ describe "Bundler::GemHelper tasks" do | |
| 62 62 | 
             
                  expect(Bundler.ui).to be_a(Bundler::UI::Shell)
         | 
| 63 63 | 
             
                end
         | 
| 64 64 |  | 
| 65 | 
            -
                describe  | 
| 65 | 
            +
                describe "install_tasks" do
         | 
| 66 66 | 
             
                  before(:each) do
         | 
| 67 67 | 
             
                    @saved, Rake.application = Rake.application, Rake::Application.new
         | 
| 68 68 | 
             
                  end
         | 
| @@ -92,7 +92,7 @@ describe "Bundler::GemHelper tasks" do | |
| 92 92 | 
             
                  end
         | 
| 93 93 | 
             
                end
         | 
| 94 94 |  | 
| 95 | 
            -
                describe  | 
| 95 | 
            +
                describe "build" do
         | 
| 96 96 | 
             
                  it "builds" do
         | 
| 97 97 | 
             
                    mock_build_message
         | 
| 98 98 | 
             
                    @helper.build_gem
         | 
| @@ -106,7 +106,7 @@ describe "Bundler::GemHelper tasks" do | |
| 106 106 | 
             
                  end
         | 
| 107 107 | 
             
                end
         | 
| 108 108 |  | 
| 109 | 
            -
                describe  | 
| 109 | 
            +
                describe "install" do
         | 
| 110 110 | 
             
                  it "installs" do
         | 
| 111 111 | 
             
                    mock_build_message
         | 
| 112 112 | 
             
                    mock_confirm_message "test (0.0.1) installed."
         | 
| @@ -127,7 +127,7 @@ describe "Bundler::GemHelper tasks" do | |
| 127 127 | 
             
                  end
         | 
| 128 128 | 
             
                end
         | 
| 129 129 |  | 
| 130 | 
            -
                describe  | 
| 130 | 
            +
                describe "release" do
         | 
| 131 131 | 
             
                  it "shouldn't push if there are unstaged files" do
         | 
| 132 132 | 
             
                    expect { @helper.release_gem }.to raise_error(/files that need to be committed/)
         | 
| 133 133 | 
             
                  end
         | 
| @@ -137,7 +137,7 @@ describe "Bundler::GemHelper tasks" do | |
| 137 137 | 
             
                    expect { @helper.release_gem }.to raise_error(/files that need to be committed/)
         | 
| 138 138 | 
             
                  end
         | 
| 139 139 |  | 
| 140 | 
            -
                  it  | 
| 140 | 
            +
                  it "raises an appropriate error if there is no git remote" do
         | 
| 141 141 | 
             
                    Bundler.ui.stub(:confirm => nil, :error => nil) # silence messages
         | 
| 142 142 |  | 
| 143 143 | 
             
                    Dir.chdir(gem_repo1) {
         | 
| @@ -193,7 +193,6 @@ describe "Bundler::GemHelper tasks" do | |
| 193 193 | 
             
                    }
         | 
| 194 194 | 
             
                    @helper.release_gem
         | 
| 195 195 | 
             
                  end
         | 
| 196 | 
            -
             | 
| 197 196 | 
             
                end
         | 
| 198 197 | 
             
              end
         | 
| 199 198 | 
             
            end
         | 
| @@ -162,6 +162,40 @@ describe "gemcutter's dependency API" do | |
| 162 162 | 
             
                should_be_installed "rack 1.0.0"
         | 
| 163 163 | 
             
              end
         | 
| 164 164 |  | 
| 165 | 
            +
              it "handles host redirects" do
         | 
| 166 | 
            +
                gemfile <<-G
         | 
| 167 | 
            +
                  source "#{source_uri}"
         | 
| 168 | 
            +
                  gem "rack"
         | 
| 169 | 
            +
                G
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                bundle :install, :artifice => "endpoint_host_redirect"
         | 
| 172 | 
            +
                should_be_installed "rack 1.0.0"
         | 
| 173 | 
            +
              end
         | 
| 174 | 
            +
             | 
| 175 | 
            +
              it "handles host redirects without Net::HTTP::Persistent" do
         | 
| 176 | 
            +
                gemfile <<-G
         | 
| 177 | 
            +
                  source "#{source_uri}"
         | 
| 178 | 
            +
                  gem "rack"
         | 
| 179 | 
            +
                G
         | 
| 180 | 
            +
             | 
| 181 | 
            +
                FileUtils.mkdir_p lib_path
         | 
| 182 | 
            +
                File.open(lib_path("disable_net_http_persistent.rb"), "w") do |h|
         | 
| 183 | 
            +
                  h.write <<-H
         | 
| 184 | 
            +
                    module Kernel
         | 
| 185 | 
            +
                      alias require_without_disabled_net_http require
         | 
| 186 | 
            +
                      def require(*args)
         | 
| 187 | 
            +
                        raise LoadError, 'simulated' if args.first == 'openssl' && !caller.grep(/vendored_persistent/).empty?
         | 
| 188 | 
            +
                        require_without_disabled_net_http(*args)
         | 
| 189 | 
            +
                      end
         | 
| 190 | 
            +
                    end
         | 
| 191 | 
            +
                  H
         | 
| 192 | 
            +
                end
         | 
| 193 | 
            +
             | 
| 194 | 
            +
                bundle :install, :artifice => "endpoint_host_redirect", :requires => [lib_path("disable_net_http_persistent.rb")]
         | 
| 195 | 
            +
                expect(out).to_not match(/Too many redirects/)
         | 
| 196 | 
            +
                should_be_installed "rack 1.0.0"
         | 
| 197 | 
            +
              end
         | 
| 198 | 
            +
             | 
| 165 199 | 
             
              it "timeouts when Bundler::Fetcher redirects too much" do
         | 
| 166 200 | 
             
                gemfile <<-G
         | 
| 167 201 | 
             
                  source "#{source_uri}"
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 | 
            -
            describe  | 
| 4 | 
            -
              describe  | 
| 3 | 
            +
            describe "bundle install with gem sources" do
         | 
| 4 | 
            +
              describe "when gems include post install messages" do
         | 
| 5 5 | 
             
                it "should display the post-install messages after installing" do
         | 
| 6 6 | 
             
                  gemfile <<-G
         | 
| 7 7 | 
             
                    source "file://#{gem_repo1}"
         | 
| @@ -20,7 +20,7 @@ describe 'bundle install with gem sources' do | |
| 20 20 | 
             
                end
         | 
| 21 21 | 
             
              end
         | 
| 22 22 |  | 
| 23 | 
            -
              describe  | 
| 23 | 
            +
              describe "when gems do not include post install messages" do
         | 
| 24 24 | 
             
                it "should not display any post-install messages" do
         | 
| 25 25 | 
             
                  gemfile <<-G
         | 
| 26 26 | 
             
                    source "file://#{gem_repo1}"
         | 
| @@ -337,6 +337,22 @@ describe "bundle install with gem sources" do | |
| 337 337 | 
             
                  G
         | 
| 338 338 | 
             
                  expect(exitstatus).to eq(0)
         | 
| 339 339 | 
             
                end
         | 
| 340 | 
            +
             | 
| 341 | 
            +
                it "reinstalls the gem if the gem dir is missing but the specification file exists" do
         | 
| 342 | 
            +
                  gemfile(<<-G)
         | 
| 343 | 
            +
                    source "file://#{gem_repo1}"
         | 
| 344 | 
            +
             | 
| 345 | 
            +
                    gem 'foo'
         | 
| 346 | 
            +
                  G
         | 
| 347 | 
            +
             | 
| 348 | 
            +
                  bundle "install --path vendor/bundle"
         | 
| 349 | 
            +
             | 
| 350 | 
            +
                  FileUtils.rm_rf(vendored_gems('gems/foo-1.0'))
         | 
| 351 | 
            +
             | 
| 352 | 
            +
                  bundle "install"
         | 
| 353 | 
            +
             | 
| 354 | 
            +
                  expect(vendored_gems('gems/foo-1.0')).to exist
         | 
| 355 | 
            +
                end
         | 
| 340 356 | 
             
              end
         | 
| 341 357 |  | 
| 342 358 | 
             
              describe "when Bundler root contains regex chars" do
         | 
    
        data/spec/install/git_spec.rb
    CHANGED
    
    | @@ -34,7 +34,7 @@ describe "bundle install with git sources" do | |
| 34 34 | 
             
                  git = update_git "foo" do |s|
         | 
| 35 35 | 
             
                    s.executables = ["foobar"] # we added this the first time, so keep it now
         | 
| 36 36 | 
             
                    s.files = ["bin/foobar"] # updating git nukes the files list
         | 
| 37 | 
            -
                    foospec = s.to_ruby.gsub(/s\.files.*/, 's.files = `git ls-files`.split("\ | 
| 37 | 
            +
                    foospec = s.to_ruby.gsub(/s\.files.*/, 's.files = `git ls-files -z`.split("\x0")')
         | 
| 38 38 | 
             
                    s.write "foo.gemspec", foospec
         | 
| 39 39 | 
             
                  end
         | 
| 40 40 |  | 
| @@ -14,37 +14,37 @@ describe "policies with unsigned gems" do | |
| 14 14 | 
             
                G
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 | 
            -
              it " | 
| 17 | 
            +
              it "will work after you try to deploy without a lock" do
         | 
| 18 18 | 
             
                bundle "install --deployment"
         | 
| 19 19 | 
             
                bundle :install, :exitstatus => true
         | 
| 20 20 | 
             
                expect(exitstatus).to eq(0)
         | 
| 21 21 | 
             
                should_be_installed "rack 1.0", "signed_gem 1.0"
         | 
| 22 22 | 
             
              end
         | 
| 23 23 |  | 
| 24 | 
            -
              it " | 
| 24 | 
            +
              it "will fail when given invalid security policy" do
         | 
| 25 25 | 
             
                bundle "install --trust-policy=InvalidPolicyName"
         | 
| 26 26 | 
             
                expect(out).to include("Rubygems doesn't know about trust policy")
         | 
| 27 27 | 
             
              end
         | 
| 28 28 |  | 
| 29 | 
            -
              it " | 
| 29 | 
            +
              it "will fail with High Security setting due to presence of unsigned gem" do
         | 
| 30 30 | 
             
                bundle "install --trust-policy=HighSecurity"
         | 
| 31 31 | 
             
                expect(out).to include("security policy didn't allow")
         | 
| 32 32 | 
             
              end
         | 
| 33 33 |  | 
| 34 34 | 
             
              # This spec will fail on Rubygems 2 rc1 due to a bug in policy.rb. the bug is fixed in rc3.
         | 
| 35 | 
            -
              it " | 
| 35 | 
            +
              it "will fail with Medium Security setting due to presence of unsigned gem", :unless => ENV['RGV'] == "v2.0.0.rc.1" do
         | 
| 36 36 | 
             
                bundle "install --trust-policy=MediumSecurity"
         | 
| 37 37 | 
             
                expect(out).to include("security policy didn't allow")
         | 
| 38 38 | 
             
              end
         | 
| 39 39 |  | 
| 40 | 
            -
              it " | 
| 40 | 
            +
              it "will succeed with no policy" do
         | 
| 41 41 | 
             
                bundle "install", :exitstatus => true
         | 
| 42 42 | 
             
                expect(exitstatus).to eq(0)
         | 
| 43 43 | 
             
              end
         | 
| 44 44 |  | 
| 45 45 | 
             
            end
         | 
| 46 46 |  | 
| 47 | 
            -
            describe "policies with signed gems | 
| 47 | 
            +
            describe "policies with signed gems and no CA" do
         | 
| 48 48 | 
             
              before do
         | 
| 49 49 | 
             
                build_security_repo
         | 
| 50 50 | 
             
                gemfile <<-G
         | 
| @@ -53,26 +53,25 @@ describe "policies with signed gems, no CA" do | |
| 53 53 | 
             
                G
         | 
| 54 54 | 
             
              end
         | 
| 55 55 |  | 
| 56 | 
            -
              it " | 
| 56 | 
            +
              it "will fail with High Security setting, gem is self-signed" do
         | 
| 57 57 | 
             
                bundle "install --trust-policy=HighSecurity"
         | 
| 58 58 | 
             
                expect(out).to include("security policy didn't allow")
         | 
| 59 59 | 
             
              end
         | 
| 60 60 |  | 
| 61 | 
            -
              it " | 
| 61 | 
            +
              it "will fail with Medium Security setting, gem is self-signed" do
         | 
| 62 62 | 
             
                bundle "install --trust-policy=MediumSecurity"
         | 
| 63 63 | 
             
                expect(out).to include("security policy didn't allow")
         | 
| 64 64 | 
             
              end
         | 
| 65 65 |  | 
| 66 | 
            -
              it " | 
| 66 | 
            +
              it "will succeed with Low Security setting, low security accepts self signed gem" do
         | 
| 67 67 | 
             
                bundle "install --trust-policy=LowSecurity", :exitstatus => true
         | 
| 68 68 | 
             
                expect(exitstatus).to eq(0)
         | 
| 69 69 | 
             
                should_be_installed "signed_gem 1.0"
         | 
| 70 70 | 
             
              end
         | 
| 71 71 |  | 
| 72 | 
            -
              it " | 
| 72 | 
            +
              it "will succeed with no policy" do
         | 
| 73 73 | 
             
                bundle "install", :exitstatus => true
         | 
| 74 74 | 
             
                expect(exitstatus).to eq(0)
         | 
| 75 75 | 
             
                should_be_installed "signed_gem 1.0"
         | 
| 76 76 | 
             
              end
         | 
| 77 | 
            -
             | 
| 78 77 | 
             
            end
         | 
    
        data/spec/integration/inject.rb
    CHANGED
    
    | @@ -21,7 +21,7 @@ describe "bundle inject" do | |
| 21 21 | 
             
                  bundle "install"
         | 
| 22 22 | 
             
                end
         | 
| 23 23 |  | 
| 24 | 
            -
                it "adds the injected gems to the  | 
| 24 | 
            +
                it "adds the injected gems to the Gemfile" do
         | 
| 25 25 | 
             
                  expect(bundled_app("Gemfile").read).not_to match(/rack-obama/)
         | 
| 26 26 | 
             
                  bundle "inject 'rack-obama' '> 0'"
         | 
| 27 27 | 
             
                  expect(bundled_app("Gemfile").read).to match(/rack-obama/)
         | 
    
        data/spec/lock/git_spec.rb
    CHANGED
    
    
    
        data/spec/lock/lockfile_spec.rb
    CHANGED
    
    | @@ -292,7 +292,7 @@ describe "the lockfile format" do | |
| 292 292 | 
             
                G
         | 
| 293 293 | 
             
              end
         | 
| 294 294 |  | 
| 295 | 
            -
              it " | 
| 295 | 
            +
              it "orders dependencies' dependencies in alphabetical order" do
         | 
| 296 296 | 
             
                install_gemfile <<-G
         | 
| 297 297 | 
             
                  source "file://#{gem_repo1}"
         | 
| 298 298 |  | 
| @@ -328,7 +328,7 @@ describe "the lockfile format" do | |
| 328 328 | 
             
                G
         | 
| 329 329 | 
             
              end
         | 
| 330 330 |  | 
| 331 | 
            -
              it "orders dependencies  | 
| 331 | 
            +
              it "orders dependencies by version" do
         | 
| 332 332 | 
             
                install_gemfile <<-G
         | 
| 333 333 | 
             
                  source "file://#{gem_repo1}"
         | 
| 334 334 | 
             
                  gem 'double_deps'
         | 
| @@ -472,6 +472,30 @@ describe "the lockfile format" do | |
| 472 472 | 
             
                G
         | 
| 473 473 | 
             
              end
         | 
| 474 474 |  | 
| 475 | 
            +
              it "stores relative paths when the path is provided for gemspec" do
         | 
| 476 | 
            +
                build_lib("foo", :path => tmp.join("foo"))
         | 
| 477 | 
            +
             | 
| 478 | 
            +
                install_gemfile <<-G
         | 
| 479 | 
            +
                  gemspec :path => "../foo"
         | 
| 480 | 
            +
                G
         | 
| 481 | 
            +
             | 
| 482 | 
            +
                lockfile_should_be <<-G
         | 
| 483 | 
            +
                  PATH
         | 
| 484 | 
            +
                    remote: ../foo
         | 
| 485 | 
            +
                    specs:
         | 
| 486 | 
            +
                      foo (1.0)
         | 
| 487 | 
            +
             | 
| 488 | 
            +
                  GEM
         | 
| 489 | 
            +
                    specs:
         | 
| 490 | 
            +
             | 
| 491 | 
            +
                  PLATFORMS
         | 
| 492 | 
            +
                    #{generic(Gem::Platform.local)}
         | 
| 493 | 
            +
             | 
| 494 | 
            +
                  DEPENDENCIES
         | 
| 495 | 
            +
                    foo!
         | 
| 496 | 
            +
                G
         | 
| 497 | 
            +
              end
         | 
| 498 | 
            +
             | 
| 475 499 | 
             
              it "keeps existing platforms in the lockfile" do
         | 
| 476 500 | 
             
                lockfile <<-G
         | 
| 477 501 | 
             
                  GEM
         | 
| @@ -638,7 +662,7 @@ describe "the lockfile format" do | |
| 638 662 | 
             
              end
         | 
| 639 663 |  | 
| 640 664 |  | 
| 641 | 
            -
              it "raises if two different  | 
| 665 | 
            +
              it "raises if two different sources are used" do
         | 
| 642 666 | 
             
                install_gemfile <<-G
         | 
| 643 667 | 
             
                  source "file://#{gem_repo1}"
         | 
| 644 668 | 
             
                  gem "rack"
         | 
| @@ -676,7 +700,7 @@ describe "the lockfile format" do | |
| 676 700 | 
             
              # * multiple copies of the same GIT section appeared in the lockfile
         | 
| 677 701 | 
             
              # * when this happened, those sections got multiple copies of gems
         | 
| 678 702 | 
             
              #   in those sections.
         | 
| 679 | 
            -
              it " | 
| 703 | 
            +
              it "fixes corrupted lockfiles" do
         | 
| 680 704 | 
             
                build_git "omg", :path => lib_path('omg')
         | 
| 681 705 | 
             
                revision = revision_for(lib_path('omg'))
         | 
| 682 706 |  | 
| @@ -740,7 +764,7 @@ describe "the lockfile format" do | |
| 740 764 | 
             
                L
         | 
| 741 765 | 
             
              end
         | 
| 742 766 |  | 
| 743 | 
            -
              describe "line  | 
| 767 | 
            +
              describe "a line ending" do
         | 
| 744 768 | 
             
                def set_lockfile_mtime_to_known_value
         | 
| 745 769 | 
             
                  time = Time.local(2000, 1, 1, 0, 0, 0)
         | 
| 746 770 | 
             
                  File.utime(time, time, bundled_app('Gemfile.lock'))
         |