mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

These omit warnings with Ruby 3.3 and are required for Ruby 3.4. We'll fix them when we're upgrading to 3.4 instead.
39 lines
1.0 KiB
Ruby
39 lines
1.0 KiB
Ruby
# typed: true
|
|
# frozen_string_literal: true
|
|
|
|
require "warning"
|
|
|
|
# Helper module for handling warnings.
|
|
module Warnings
|
|
COMMON_WARNINGS = {
|
|
parser_syntax: [
|
|
%r{warning: parser/current is loading parser/ruby\d+, which recognizes},
|
|
/warning: \d+\.\d+\.\d+-compliant syntax, but you are running \d+\.\d+\.\d+\./,
|
|
# FIXME: https://github.com/errata-ai/vale/issues/818
|
|
# <!-- vale off -->
|
|
%r{warning: please see https://github\.com/whitequark/parser#compatibility-with-ruby-mri\.},
|
|
# <!-- vale on -->
|
|
],
|
|
default_gems: [
|
|
/warning: .+\.rb was loaded from the standard library, .+ default gems since Ruby \d+\.\d+\.\d+\./,
|
|
],
|
|
}.freeze
|
|
|
|
def self.ignore(*warnings)
|
|
warnings.map! do |warning|
|
|
next warning if !warning.is_a?(Symbol) || !COMMON_WARNINGS.key?(warning)
|
|
|
|
COMMON_WARNINGS[warning]
|
|
end
|
|
|
|
warnings.flatten.each do |warning|
|
|
Warning.ignore warning
|
|
end
|
|
return unless block_given?
|
|
|
|
result = yield
|
|
Warning.clear
|
|
result
|
|
end
|
|
end
|