diff --git a/lib/strategies/bundler_strategy.rb b/lib/strategies/bundler_strategy.rb index a041743..a301126 100644 --- a/lib/strategies/bundler_strategy.rb +++ b/lib/strategies/bundler_strategy.rb @@ -7,20 +7,24 @@ def name def get_libraries Dir.chdir(repo.file_location) do - `bundle show` - .split("\n") - .select { |line| line.strip.start_with?('*') } - .map do |line| - _, gem_name, version = line.split - version = version.gsub(/[()]/, '') - license = get_license(gem_name) - - { - "name" => gem_name, - "version" => version, - "license" => license - } - end + Bundler.with_clean_env do + `bundle install` + + `bundle show` + .split("\n") + .select { |line| line.strip.start_with?('*') } + .map do |line| + _, gem_name, version = line.split + version = version.gsub(/[()]/, '') + license = get_license(gem_name) + + { + "name" => gem_name, + "version" => version, + "license" => license + } + end + end end end diff --git a/spec/lib/strategies/bundler_strategy_spec.rb b/spec/lib/strategies/bundler_strategy_spec.rb index 7e09b52..5defa46 100644 --- a/spec/lib/strategies/bundler_strategy_spec.rb +++ b/spec/lib/strategies/bundler_strategy_spec.rb @@ -19,6 +19,10 @@ ] end + before do + allow(subject).to receive(:`).with('bundle install') + end + context 'with no gems' do let(:no_gems_message) { "Could not locate Gemfile or .bundle/ directory\n" }