Simplify tap formula loading
This commit is contained in:
parent
e008ceb332
commit
757c8ade0b
@ -147,14 +147,19 @@ class Formulary
|
|||||||
|
|
||||||
# Loads tapped formulae.
|
# Loads tapped formulae.
|
||||||
class TapLoader < FormulaLoader
|
class TapLoader < FormulaLoader
|
||||||
|
attr_reader :tapped_name
|
||||||
|
|
||||||
def initialize tapped_name
|
def initialize tapped_name
|
||||||
super tapped_name, Pathname.new(tapped_name)
|
@tapped_name = tapped_name
|
||||||
|
user, repo, name = tapped_name.split("/", 3).map(&:downcase)
|
||||||
|
path = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{user}-#{repo}/#{name}.rb")
|
||||||
|
super name, path
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_formula
|
def get_formula
|
||||||
super
|
super
|
||||||
rescue FormulaUnavailableError => e
|
rescue FormulaUnavailableError
|
||||||
raise TapFormulaUnavailableError.new(e.name)
|
raise TapFormulaUnavailableError.new(tapped_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -174,22 +179,8 @@ class Formulary
|
|||||||
return FromUrlLoader.new(ref)
|
return FromUrlLoader.new(ref)
|
||||||
when Pathname::BOTTLE_EXTNAME_RX
|
when Pathname::BOTTLE_EXTNAME_RX
|
||||||
return BottleLoader.new(ref)
|
return BottleLoader.new(ref)
|
||||||
end
|
when HOMEBREW_TAP_FORMULA_REGEX
|
||||||
|
return TapLoader.new(ref)
|
||||||
if ref =~ HOMEBREW_TAP_FORMULA_REGEX
|
|
||||||
tap_name = "#$1-#$2".downcase
|
|
||||||
tapd = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{tap_name}")
|
|
||||||
|
|
||||||
if tapd.directory?
|
|
||||||
tapd.find_formula do |relative_pathname|
|
|
||||||
path = "#{tapd}/#{relative_pathname}"
|
|
||||||
if relative_pathname.stem.to_s == $3
|
|
||||||
return FromPathLoader.new(path)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
return TapLoader.new(ref)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if ref.include?("/") || File.extname(ref) == ".rb"
|
if ref.include?("/") || File.extname(ref) == ".rb"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user