From 068808aa720cab6be801ef1588043e62bc2a1c1b Mon Sep 17 00:00:00 2001 From: Alex Rocha Date: Mon, 20 Jan 2025 13:55:13 -0800 Subject: [PATCH] Ensure tapioca gem command executes in a clean env --- lib/ruby_lsp/tapioca/run_gem_rbi_check.rb | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb b/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb index f3add9188..7b995594f 100644 --- a/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb +++ b/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb @@ -74,20 +74,22 @@ def generate_gem_rbis sig { params(gems: T::Array[String]).void } def execute_tapioca_gem_command(gems) - # Resetting BUNDLE_GEMFILE to root folder to use the project's Gemfile instead of Ruby LSP's composed Gemfile - stdout, stderr, status = T.unsafe(Open3).capture3( - { "BUNDLE_GEMFILE" => "Gemfile" }, - "bundle", - "exec", - "tapioca", - "gem", - "--lsp_addon", - *gems, - ) - - log_message(stdout) unless stdout.empty? - log_message(stderr) unless stderr.empty? - @result.status = status + Bundler.with_unbundled_env do + # Resetting BUNDLE_GEMFILE to root folder to use the project's Gemfile instead of Ruby LSP's composed Gemfile + stdout, stderr, status = T.unsafe(Open3).capture3( + { "BUNDLE_GEMFILE" => "Gemfile" }, + "bundle", + "exec", + "tapioca", + "gem", + "--lsp_addon", + *gems, + ) + + log_message(stdout) unless stdout.empty? + log_message(stderr) unless stderr.empty? + @result.status = status + end end sig { params(gems: T::Array[String]).void }