extract: localize DependencyCollector monkey-patches too

This commit is contained in:
Caleb Xu 2018-08-25 19:52:22 -04:00
parent bd352bcf35
commit ad0f9d603f

View File

@ -37,6 +37,20 @@ def with_monkey_patch
define_method(:method_missing) { |*| }
end
DependencyCollector.class_eval do
if method_defined?(:parse_symbol_spec)
alias_method :old_parse_symbol_spec, :parse_symbol_spec
end
define_method(:parse_symbol_spec) { |*| }
end
DependencyCollector::Compat.class_eval do
if method_defined?(:parse_string_spec)
alias_method :old_parse_string_spec, :parse_string_spec
end
define_method(:parse_string_spec) { |*| }
end
yield
ensure
BottleSpecification.class_eval do
@ -59,18 +73,20 @@ ensure
undef :old_method_missing
end
end
end
class DependencyCollector
def parse_symbol_spec(*); end
module Compat
def parse_string_spec(spec, tags)
super
DependencyCollector.class_eval do
if method_defined?(:old_parse_symbol_spec)
alias_method :parse_symbol_spec, :old_parse_symbol_spec
undef :old_parse_symbol_spec
end
end
prepend Compat
DependencyCollector::Compat.class_eval do
if method_defined?(:old_parse_string_spec)
alias_method :parse_string_spec, :old_parse_string_spec
undef :old_parse_string_spec
end
end
end
module Homebrew