diff --git a/lib/license_finder/package_managers/bundler.rb b/lib/license_finder/package_managers/bundler.rb index 1c552939d..7b2ffa4fc 100644 --- a/lib/license_finder/package_managers/bundler.rb +++ b/lib/license_finder/package_managers/bundler.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'bundler' +require 'securerandom' module LicenseFinder class Bundler < PackageManager @@ -26,7 +27,10 @@ def package_management_command def prepare_command ignored_groups_argument = !ignored_groups.empty? ? "--without #{ignored_groups.to_a.join(' ')}" : '' - "bundle install #{ignored_groups_argument}".strip + gem_path = SecureRandom.uuid + logger.info self.class, "Running bundle install for #{Dir.pwd} with path #{gem_path}", color: :blue + + "bundle install #{ignored_groups_argument} --path #{gem_path}".strip end def possible_package_paths diff --git a/spec/lib/license_finder/package_managers/bundler_spec.rb b/spec/lib/license_finder/package_managers/bundler_spec.rb index 6d6c00f8d..af78b4787 100644 --- a/spec/lib/license_finder/package_managers/bundler_spec.rb +++ b/spec/lib/license_finder/package_managers/bundler_spec.rb @@ -27,17 +27,21 @@ def build_gemspec(name, version, dependency = nil) end describe '.prepare_command' do + before do + allow(SecureRandom).to receive(:uuid).and_return('some-path') + end + context 'with ignored groups' do subject { Bundler.new(ignored_groups: Set.new(%w[dev test]), project_path: Pathname.new('.'), definition: definition) } it 'returns the correct prepare method' do - expect(subject.prepare_command).to eq('bundle install --without dev test') + expect(subject.prepare_command).to eq('bundle install --without dev test --path some-path') end end context 'without ignored groups' do subject { Bundler.new(ignored_groups: Set.new, project_path: Pathname.new('.'), definition: definition) } it 'returns the correct prepare method' do - expect(subject.prepare_command).to eq('bundle install') + expect(subject.prepare_command).to eq('bundle install --path some-path') end end end