Improve performance of Formula#to_hash

This commit is contained in:
Bo Anderson 2023-09-28 14:07:25 +01:00
parent eadbe0f184
commit 0c08a3cccb
No known key found for this signature in database
GPG Key ID: 3DB94E204E137D65
3 changed files with 13 additions and 8 deletions

View File

@ -537,8 +537,7 @@ class Formula
sig { returns(T::Array[String]) }
def oldnames
@oldnames ||= if tap
T.must(tap).formula_renames
.flat_map { |old_name, new_name| (new_name == name) ? old_name : [] }
T.must(tap).formula_oldnames.fetch(name, [])
else
[]
end
@ -2237,7 +2236,7 @@ class Formula
"versions" => {
"stable" => stable&.version&.to_s,
"head" => head&.version&.to_s,
"bottle" => !bottle_specification.checksums.empty?,
"bottle" => bottle_defined?,
},
"urls" => {},
"revision" => revision,
@ -2434,7 +2433,7 @@ class Formula
"files" => {},
}
bottle_spec.collector.each_tag do |tag|
tag_spec = bottle_spec.collector.specification_for(tag)
tag_spec = bottle_spec.collector.specification_for(tag, no_older_versions: true)
os_cellar = tag_spec.cellar
os_cellar = os_cellar.inspect if os_cellar.is_a?(Symbol)

View File

@ -767,6 +767,15 @@ class Tap
end
end
# Hash with tap formula old names. Reverse of {#formula_renames}.
sig { returns(T::Hash[String, T::Array[String]]) }
def formula_oldnames
@formula_oldnames ||= formula_renames.each_with_object({}) do |(old_name, new_name), hash|
hash[new_name] ||= []
hash[new_name] << old_name
end
end
# Hash with tap migrations.
sig { returns(Hash) }
def tap_migrations

View File

@ -209,10 +209,7 @@ module Utils
sig { returns(T::Boolean) }
def macos?
to_macos_version
true
rescue MacOSVersion::Error
false
MacOSVersion::SYMBOLS.key?(system)
end
sig { returns(T::Boolean) }