diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-08-06 17:23:06 +0200 |
---|---|---|
committer | SHIBATA Hiroshi <hsbt@ruby-lang.org> | 2019-08-16 14:30:23 +0900 |
commit | cd15d27d10d4f041cf4e60064dae96562c9bd83f (patch) | |
tree | 96692bc5098dd6ad02bdcedd8cb83de928898df5 | |
parent | 4af3665fd91aae87c9fe014778ed7c54245e2f9b (diff) | |
download | ruby-cd15d27d10d4f041cf4e60064dae96562c9bd83f.tar.gz |
[bundler/bundler] Stop printing deprecation messages during specs
Previously under some circunstances (met during some specs), bundler
would print deprecations to a separate UI different from "bundler's UI".
This UI would not be captured by the specs, and thus would be printed to
screen during the specs.
This commit fixes that by making sure all deprecation messages always go
through bundler's UI.
https://github.com/bundler/bundler/commit/220c54b7fa
-rw-r--r-- | lib/bundler/shared_helpers.rb | 20 |
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 |