mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Some minor regexp match perf improvements
This commit is contained in:
parent
dbb800b7d3
commit
3abbf4447e
@ -20,7 +20,7 @@ module Cask
|
||||
end
|
||||
|
||||
def self.english_article
|
||||
@english_article ||= (english_name =~ /^[aeiou]/i) ? "an" : "a"
|
||||
@english_article ||= /^[aeiou]/i.match?(english_name) ? "an" : "a"
|
||||
end
|
||||
|
||||
def self.dsl_key
|
||||
|
@ -843,7 +843,7 @@ module Cask
|
||||
def bad_url_format?(regex, valid_formats_array)
|
||||
return false unless cask.url.to_s.match?(regex)
|
||||
|
||||
valid_formats_array.none? { |format| cask.url.to_s =~ format }
|
||||
valid_formats_array.none? { |format| cask.url.to_s&.match?(format) }
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
|
@ -294,7 +294,7 @@ module Homebrew
|
||||
|
||||
# Ignore matches to go keg, because all go binaries are statically linked.
|
||||
any_go_deps = formula.deps.any? do |dep|
|
||||
dep.name =~ Version.formula_optionally_versioned_regex(:go)
|
||||
dep.name&.match?(Version.formula_optionally_versioned_regex(:go))
|
||||
end
|
||||
if any_go_deps
|
||||
go_regex = Version.formula_optionally_versioned_regex(:go, full: false)
|
||||
|
@ -32,7 +32,7 @@ module FormulaCellarChecks
|
||||
keg = Keg.new(formula.prefix)
|
||||
system_openssl = keg.mach_o_files.select do |obj|
|
||||
dlls = obj.dynamically_linked_libraries
|
||||
dlls.any? { |dll| %r{/usr/lib/lib(crypto|ssl|tls)\..*dylib}.match dll }
|
||||
dlls.any? { |dll| %r{/usr/lib/lib(crypto|ssl|tls)\..*dylib}.match? dll }
|
||||
end
|
||||
return if system_openssl.empty?
|
||||
|
||||
|
@ -1328,7 +1328,7 @@ class Formula
|
||||
self.class.link_overwrite_paths.any? do |p|
|
||||
p == to_check ||
|
||||
to_check.start_with?("#{p.chomp("/")}/") ||
|
||||
to_check =~ /^#{Regexp.escape(p).gsub('\*', ".*?")}$/
|
||||
/^#{Regexp.escape(p).gsub('\*', ".*?")}$/.match?(to_check)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -76,7 +76,7 @@ module Homebrew
|
||||
!@versioned_formula &&
|
||||
(versioned_formulae = formula.versioned_formulae - [formula]) &&
|
||||
versioned_formulae.present?
|
||||
versioned_aliases, unversioned_aliases = formula.aliases.partition { |a| a =~ /.@\d/ }
|
||||
versioned_aliases, unversioned_aliases = formula.aliases.partition { |a| /.@\d/.match?(a) }
|
||||
_, last_alias_version = versioned_formulae.map(&:name).last.split("@")
|
||||
|
||||
alias_name_major = "#{formula.name}@#{formula.version.major}"
|
||||
@ -715,7 +715,7 @@ module Homebrew
|
||||
return unless stable.url
|
||||
|
||||
version = stable.version
|
||||
problem "Stable: version (#{version}) is set to a string without a digit" if version.to_s !~ /\d/
|
||||
problem "Stable: version (#{version}) is set to a string without a digit" unless /\d/.match?(version.to_s)
|
||||
|
||||
stable_version_string = version.to_s
|
||||
if stable_version_string.start_with?("HEAD")
|
||||
|
@ -16,7 +16,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
def trailing_newline?
|
||||
/\Z\n/ =~ @text
|
||||
/\Z\n/.match?(@text)
|
||||
end
|
||||
|
||||
def =~(other)
|
||||
@ -32,12 +32,12 @@ module Homebrew
|
||||
end
|
||||
|
||||
def line_number(regex, skip = 0)
|
||||
index = @lines.drop(skip).index { |line| line =~ regex }
|
||||
index = @lines.drop(skip).index { |line| line&.match?(regex) }
|
||||
index ? index + 1 : nil
|
||||
end
|
||||
|
||||
def reverse_line_number(regex)
|
||||
index = @lines.reverse.index { |line| line =~ regex }
|
||||
index = @lines.reverse.index { |line| line&.match?(regex) }
|
||||
index ? @lines.count - index : nil
|
||||
end
|
||||
end
|
||||
|
@ -328,7 +328,7 @@ class Keg
|
||||
Utils.popen_read("strings", "-t", "x", "-", file.to_s) do |io|
|
||||
until io.eof?
|
||||
str = io.readline.chomp
|
||||
next if ignores.any? { |i| i =~ str }
|
||||
next if ignores.any? { |i| i&.match?(str) }
|
||||
next unless str.match? path_regex
|
||||
|
||||
offset, match = str.split(" ", 2)
|
||||
|
@ -66,7 +66,7 @@ module Homebrew
|
||||
|
||||
# Isolate tag strings and filter by regex
|
||||
tags = stdout.gsub(%r{^.*\trefs/tags/|\^{}$}, "").split("\n").uniq.sort
|
||||
tags.select! { |t| t =~ regex } if regex
|
||||
tags.select! { |t| t&.match?(regex) } if regex
|
||||
tags_data[:tags] = tags
|
||||
|
||||
tags_data
|
||||
|
@ -78,7 +78,7 @@ class DATAPatch < EmbeddedPatch
|
||||
path.open("rb") do |f|
|
||||
loop do
|
||||
line = f.gets
|
||||
break if line.nil? || line =~ /^__END__$/
|
||||
break if line.nil? || /^__END__$/.match?(line)
|
||||
end
|
||||
while (line = f.gets)
|
||||
data << line
|
||||
|
@ -233,7 +233,7 @@ module RuboCop
|
||||
paths_to_exclude = [%r{/Library/Homebrew/test/}]
|
||||
return true if @file_path.nil? # file_path is nil when source is directly passed to the cop, e.g. in specs
|
||||
|
||||
@file_path !~ Regexp.union(paths_to_exclude)
|
||||
!@file_path&.match?(Regexp.union(paths_to_exclude))
|
||||
end
|
||||
|
||||
def on_system_methods
|
||||
|
@ -34,7 +34,7 @@ module RuboCop
|
||||
reason = string_content(reason).sub(name, "")
|
||||
first_word = reason.split.first
|
||||
|
||||
if reason =~ /\A[A-Z]/ && !reason.start_with?(*allowlist)
|
||||
if /\A[A-Z]/.match?(reason) && !reason.start_with?(*allowlist)
|
||||
problem "'#{first_word}' from the `keg_only` reason should be '#{first_word.downcase}'." do |corrector|
|
||||
reason[0] = reason[0].downcase
|
||||
corrector.replace(@offensive_node.source_range, "\"#{reason}\"")
|
||||
|
@ -26,7 +26,7 @@ module RuboCop
|
||||
option = string_content(option)
|
||||
problem UNI_DEPRECATION_MSG if option == "universal"
|
||||
|
||||
if option !~ /with(out)?-/ &&
|
||||
if !/with(out)?-/.match?(option) &&
|
||||
option != "cxx11" &&
|
||||
option != "universal"
|
||||
problem "Options should begin with with/without. " \
|
||||
|
@ -172,7 +172,7 @@ class Sandbox
|
||||
logs = Utils.popen_read("syslog", *syslog_args)
|
||||
|
||||
# These messages are confusing and non-fatal, so don't report them.
|
||||
logs = logs.lines.reject { |l| l.match(/^.*Python\(\d+\) deny file-write.*pyc$/) }.join
|
||||
logs = logs.lines.grep_v(/^.*Python\(\d+\) deny file-write.*pyc$/).join
|
||||
|
||||
unless logs.empty?
|
||||
if @logfile
|
||||
|
@ -5,7 +5,7 @@ require "cask/audit"
|
||||
describe Cask::Audit, :cask do
|
||||
def include_msg?(problems, msg)
|
||||
if msg.is_a?(Regexp)
|
||||
Array(problems).any? { |problem| problem[:message] =~ msg }
|
||||
Array(problems).any? { |problem| problem[:message]&.match?(msg) }
|
||||
else
|
||||
Array(problems).any? { |problem| problem[:message] == msg }
|
||||
end
|
||||
|
@ -51,7 +51,7 @@ module Utils
|
||||
|
||||
def receipt_path(bottle_file)
|
||||
bottle_file_list(bottle_file).find do |line|
|
||||
line =~ %r{.+/.+/INSTALL_RECEIPT.json}
|
||||
%r{.+/.+/INSTALL_RECEIPT.json}.match?(line)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -335,7 +335,7 @@ module Utils
|
||||
# Strategy:
|
||||
# If the `:homepage` 404s, it's a GitHub link, and we have a token then
|
||||
# check the API (which does use tokens) for the repository
|
||||
repo_details = url.match(%r{https?://github\.com/(?<user>[^/]+)/(?<repo>[^/]+)/?.*})
|
||||
repo_details = url.match?(%r{https?://github\.com/(?<user>[^/]+)/(?<repo>[^/]+)/?.*})
|
||||
check_github_api = url_type == SharedAudits::URL_TYPE_HOMEPAGE &&
|
||||
details[:status_code] == "404" &&
|
||||
repo_details &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user