From 6319a7a281bd9cc997c08c903674ab51fcc6545e Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Tue, 14 Apr 2020 08:09:12 +0200 Subject: [PATCH] Do not set Bundle path. Bundler will figure it out. --- .../features/package_managers/bundler_spec.rb | 16 +++++++++++++ features/support/testing_dsl.rb | 23 +++++++++++++++++++ .../package_managers/bundler.rb | 2 -- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/features/features/package_managers/bundler_spec.rb b/features/features/package_managers/bundler_spec.rb index e8986216e..74a4393d4 100644 --- a/features/features/package_managers/bundler_spec.rb +++ b/features/features/package_managers/bundler_spec.rb @@ -19,4 +19,20 @@ bundler_developer.run_license_finder expect(bundler_developer).to be_seeing_something_like /rake.*MIT/ end + + specify 'works with git dependency running outside of the bundle' do + # Run license_finder outside any Bundler environment + ::Bundler.with_unbundled_env do + # Fake home to avoid polluting real home with git checkout + ENV['HOME'] = LicenseFinder::TestingDSL::Paths.projects.to_s + # Make running license_finder pick up the correct implementation + ENV['RUBYOPT'] = "-I#{LicenseFinder::TestingDSL::Paths.root}/lib" + # Allow the main executable to be found + ENV['PATH'] = "#{LicenseFinder::TestingDSL::Paths.root}/bin:#{ENV['PATH']}" + LicenseFinder::TestingDSL::GitBundlerProject.create + puts 'bundler project created' + bundler_developer.run_license_finder + expect(bundler_developer).to be_seeing_something_like /bundler.*MIT/ + end + end end diff --git a/features/support/testing_dsl.rb b/features/support/testing_dsl.rb index cf46b3719..32a9436a0 100644 --- a/features/support/testing_dsl.rb +++ b/features/support/testing_dsl.rb @@ -557,6 +557,29 @@ def add_to_gemfile(content) end end + class GitBundlerProject < Project + def add_dep + add_to_gemfile("source 'https://rubygems.org'") + add_to_gemfile("gem 'license_finder', git: #{Paths.root.to_s.inspect}") + end + + def install + ::Bundler.with_original_env do + shell_out('bundle install') + end + end + + private + + def add_gem_to_gemfile(gem_name, options) + add_to_gemfile("gem #{gem_name.inspect}, #{options.inspect}") + end + + def add_to_gemfile(content) + add_to_file('Gemfile', content) + end + end + # lives adjacent to a BundlerProject, so has a different lifecycle from other Projects and doesn't inherit class GemProject def self.create(name, options) diff --git a/lib/license_finder/package_managers/bundler.rb b/lib/license_finder/package_managers/bundler.rb index 7b2ffa4fc..61fbfea4b 100644 --- a/lib/license_finder/package_managers/bundler.rb +++ b/lib/license_finder/package_managers/bundler.rb @@ -42,8 +42,6 @@ def possible_package_paths attr_reader :ignored_groups def definition - # DI - ENV['BUNDLE_PATH'] = project_path.to_s ENV['BUNDLE_GEMFILE'] = "#{project_path}/#{gemfile}" @definition ||= ::Bundler::Definition.build(detected_package_path, lockfile_path, nil)