Add better error message for misnamed formula class.
This commit is contained in:
parent
1e3dff7b8e
commit
b2a857da54
@ -30,8 +30,11 @@ class BuildError <ExecutionError
|
|||||||
end
|
end
|
||||||
class FormulaUnavailableError <RuntimeError
|
class FormulaUnavailableError <RuntimeError
|
||||||
def initialize name
|
def initialize name
|
||||||
|
@name = name
|
||||||
super "No available formula for #{name}"
|
super "No available formula for #{name}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
attr_reader :name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -171,7 +174,17 @@ class Formula
|
|||||||
else
|
else
|
||||||
require self.path(name)
|
require self.path(name)
|
||||||
end
|
end
|
||||||
return eval(self.class_s(name)).new(name)
|
begin
|
||||||
|
klass_name =self.class_s(name)
|
||||||
|
klass = eval(klass_name)
|
||||||
|
rescue NameError
|
||||||
|
# TODO really this text should be encoded into the exception
|
||||||
|
# and only shown if the UI deems it correct to show it
|
||||||
|
onoe "class \"#{klass_name}\" expected but not found in #{name}.rb"
|
||||||
|
puts "Double-check the name of the class in that formula."
|
||||||
|
raise LoadError
|
||||||
|
end
|
||||||
|
return klass.new(name)
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
raise FormulaUnavailableError.new(name)
|
raise FormulaUnavailableError.new(name)
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user