summaryrefslogtreecommitdiff
path: root/lib/bundler/shared_helpers.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler/shared_helpers.rb')
-rw-r--r--lib/bundler/shared_helpers.rb20
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb
index b7e2af29c4..af1836009f 100644
--- a/lib/bundler/shared_helpers.rb
+++ b/lib/bundler/shared_helpers.rb
@@ -133,8 +133,9 @@ module Bundler
return unless bundler_major_version >= major_version && prints_major_deprecations?
@major_deprecation_ui ||= Bundler::UI::Shell.new("no-color" => true)
- ui = Bundler.ui.is_a?(@major_deprecation_ui.class) ? Bundler.ui : @major_deprecation_ui
- ui.warn("[DEPRECATED] #{message}")
+ with_major_deprecation_ui do |ui|
+ ui.warn("[DEPRECATED] #{message}")
+ end
end
def print_major_deprecations!
@@ -211,6 +212,21 @@ module Bundler
private
+ def with_major_deprecation_ui(&block)
+ ui = Bundler.ui
+
+ if ui.is_a?(@major_deprecation_ui.class)
+ yield ui
+ else
+ begin
+ Bundler.ui = @major_deprecation_ui
+ yield Bundler.ui
+ ensure
+ Bundler.ui = ui
+ end
+ end
+ end
+
def validate_bundle_path
path_separator = Bundler.rubygems.path_separator
return unless Bundler.bundle_path.to_s.split(path_separator).size > 1