Catch another name error

Closes Homebrew/homebrew#20920.
This commit is contained in:
Adam Vandenberg 2013-06-30 10:26:12 -07:00
parent 5b75c73df6
commit b40615d66a

View File

@ -28,7 +28,13 @@ class Formulary
# Return the Class for this formula, `require`-ing it if # Return the Class for this formula, `require`-ing it if
# it has not been parsed before. # it has not been parsed before.
def klass def klass
unless Formulary.formula_class_defined? name begin
have_klass = Formulary.formula_class_defined? name
rescue NameError
raise FormulaUnavailableError.new(name)
end
unless have_klass
puts "#{$0}: loading #{path}" if ARGV.debug? puts "#{$0}: loading #{path}" if ARGV.debug?
begin begin
require path.to_s require path.to_s
@ -40,6 +46,7 @@ class Formulary
raise FormulaUnavailableError.new(name) raise FormulaUnavailableError.new(name)
end end
end end
klass = Formulary.get_formula_class(name) klass = Formulary.get_formula_class(name)
if (klass == Formula) || !klass.ancestors.include?(Formula) if (klass == Formula) || !klass.ancestors.include?(Formula)
raise FormulaUnavailableError.new(name) raise FormulaUnavailableError.new(name)