Merge pull request #10642 from Bo98/formulary-remove_const
formulary: remove consts on cache clear
This commit is contained in:
commit
baf61b2dbc
@ -33,6 +33,19 @@ module Formulary
|
|||||||
cache.fetch(path)
|
cache.fetch(path)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.clear_cache
|
||||||
|
cache.each do |key, klass|
|
||||||
|
next if key == :formulary_factory
|
||||||
|
|
||||||
|
namespace = klass.name.deconstantize
|
||||||
|
next if namespace.deconstantize != name
|
||||||
|
|
||||||
|
remove_const(namespace.demodulize)
|
||||||
|
end
|
||||||
|
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
def self.load_formula(name, path, contents, namespace, flags:)
|
def self.load_formula(name, path, contents, namespace, flags:)
|
||||||
raise "Formula loading disabled by HOMEBREW_DISABLE_LOAD_FORMULA!" if Homebrew::EnvConfig.disable_load_formula?
|
raise "Formula loading disabled by HOMEBREW_DISABLE_LOAD_FORMULA!" if Homebrew::EnvConfig.disable_load_formula?
|
||||||
|
|
||||||
@ -47,6 +60,7 @@ module Formulary
|
|||||||
mod.const_set(:BUILD_FLAGS, flags)
|
mod.const_set(:BUILD_FLAGS, flags)
|
||||||
mod.module_eval(contents, path)
|
mod.module_eval(contents, path)
|
||||||
rescue NameError, ArgumentError, ScriptError, MethodDeprecatedError => e
|
rescue NameError, ArgumentError, ScriptError, MethodDeprecatedError => e
|
||||||
|
remove_const(namespace)
|
||||||
raise FormulaUnreadableError.new(name, e)
|
raise FormulaUnreadableError.new(name, e)
|
||||||
end
|
end
|
||||||
class_name = class_s(name)
|
class_name = class_s(name)
|
||||||
@ -58,6 +72,7 @@ module Formulary
|
|||||||
.map { |const_name| mod.const_get(const_name) }
|
.map { |const_name| mod.const_get(const_name) }
|
||||||
.select { |const| const.is_a?(Class) }
|
.select { |const| const.is_a?(Class) }
|
||||||
new_exception = FormulaClassUnavailableError.new(name, path, class_name, class_list)
|
new_exception = FormulaClassUnavailableError.new(name, path, class_name, class_list)
|
||||||
|
remove_const(namespace)
|
||||||
raise new_exception, "", e.backtrace
|
raise new_exception, "", e.backtrace
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user