formulary: use FormulaClassUnavailableError

Present a more helpful error message if a formula file was loaded, but
the class(es) therein didn't match the expected formula class name.
This commit is contained in:
Martin Afanasjew 2016-04-16 20:58:20 +02:00
parent 1ded40a744
commit c3076f0b69

View File

@ -23,8 +23,12 @@ class Formulary
begin
mod.const_get(class_name)
rescue NameError => e
raise FormulaUnavailableError, name, e.backtrace
rescue NameError => original_exception
class_list = mod.constants.
map { |const_name| mod.const_get(const_name) }.
select { |const| const.is_a?(Class) }
e = FormulaClassUnavailableError.new(name, path, class_name, class_list)
raise e, "", original_exception.backtrace
end
end