Simplify Tap#formula_files_by_name.

This commit is contained in:
Markus Reiter 2024-02-23 15:03:33 +01:00
parent 977ac20b2b
commit 2a78eba1ad
No known key found for this signature in database
GPG Key ID: 245293B51702655B
2 changed files with 5 additions and 12 deletions

View File

@ -1201,7 +1201,6 @@ module Formulary
"#{name}.rb" "#{name}.rb"
end end
Tap.formula_files_by_name(tap) tap.formula_files_by_name.fetch(name, tap.formula_dir/filename)
.fetch(name, tap.formula_dir/filename)
end end
end end

View File

@ -128,6 +128,7 @@ class Tap
@command_dir = nil @command_dir = nil
@formula_names = nil @formula_names = nil
@formula_files = nil @formula_files = nil
@formula_files_by_name = nil
@cask_files = nil @cask_files = nil
@alias_dir = nil @alias_dir = nil
@alias_files = nil @alias_files = nil
@ -560,19 +561,12 @@ class Tap
end end
end end
# A cached hash of {Formula} basenames to {Formula} file pathnames for a {Tap} # A mapping of {Formula} names to {Formula} file paths.
sig { params(tap: Tap).returns(T::Hash[String, Pathname]) } #
def self.formula_files_by_name(tap)
cache_key = "formula_files_by_name_#{tap}"
cache.fetch(cache_key) do |key|
cache[key] = tap.formula_files_by_name
end
end
# @private # @private
sig { returns(T::Hash[String, Pathname]) } sig { returns(T::Hash[String, Pathname]) }
def formula_files_by_name def formula_files_by_name
formula_files.each_with_object({}) do |file, hash| @formula_files_by_name ||= formula_files.each_with_object({}) do |file, hash|
# If there's more than one file with the same basename: use the longer one to prioritise more specific results. # If there's more than one file with the same basename: use the longer one to prioritise more specific results.
basename = file.basename(".rb").to_s basename = file.basename(".rb").to_s
existing_file = hash[basename] existing_file = hash[basename]