@@ -383,28 +383,12 @@ def clean_env
383383
384384 # @return [Hash] Environment with all bundler-related variables removed
385385 def unbundled_env
386- env = original_env
387-
388- if env . key? ( "BUNDLER_ORIG_MANPATH" )
389- env [ "MANPATH" ] = env [ "BUNDLER_ORIG_MANPATH" ]
390- end
391-
392- env . delete_if { |k , _ | k [ 0 , 7 ] == "BUNDLE_" }
393-
394- if env . key? ( "RUBYOPT" )
395- rubyopt = env [ "RUBYOPT" ] . split ( " " )
396- rubyopt . delete ( "-r#{ File . expand_path ( "bundler/setup" , __dir__ ) } " )
397- rubyopt . delete ( "-rbundler/setup" )
398- env [ "RUBYOPT" ] = rubyopt . join ( " " )
399- end
400-
401- if env . key? ( "RUBYLIB" )
402- rubylib = env [ "RUBYLIB" ] . split ( File ::PATH_SEPARATOR )
403- rubylib . delete ( __dir__ )
404- env [ "RUBYLIB" ] = rubylib . join ( File ::PATH_SEPARATOR )
405- end
386+ unbundle_env ( original_env )
387+ end
406388
407- env
389+ # Remove all bundler-related variables from ENV
390+ def unbundle_env!
391+ ENV . replace ( unbundle_env ( ENV ) )
408392 end
409393
410394 # Run block with environment present before Bundler was activated
@@ -633,6 +617,30 @@ def self_manager
633617
634618 private
635619
620+ def unbundle_env ( env )
621+ if env . key? ( "BUNDLER_ORIG_MANPATH" )
622+ env [ "MANPATH" ] = env [ "BUNDLER_ORIG_MANPATH" ]
623+ end
624+
625+ env . delete_if { |k , _ | k [ 0 , 7 ] == "BUNDLE_" }
626+ env . delete ( "BUNDLER_SETUP" )
627+
628+ if env . key? ( "RUBYOPT" )
629+ rubyopt = env [ "RUBYOPT" ] . split ( " " )
630+ rubyopt . delete ( "-r#{ File . expand_path ( "bundler/setup" , __dir__ ) } " )
631+ rubyopt . delete ( "-rbundler/setup" )
632+ env [ "RUBYOPT" ] = rubyopt . join ( " " )
633+ end
634+
635+ if env . key? ( "RUBYLIB" )
636+ rubylib = env [ "RUBYLIB" ] . split ( File ::PATH_SEPARATOR )
637+ rubylib . delete ( __dir__ )
638+ env [ "RUBYLIB" ] = rubylib . join ( File ::PATH_SEPARATOR )
639+ end
640+
641+ env
642+ end
643+
636644 def load_marshal ( data , marshal_proc : nil )
637645 Marshal . load ( data , marshal_proc )
638646 rescue TypeError => e
0 commit comments