versions: use the actual class name when unloading
And document a bit more why this hack is present. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
parent
1ed22ff1c3
commit
e9a0f24ccb
@ -62,8 +62,15 @@ class Formula
|
|||||||
mktemp do
|
mktemp do
|
||||||
path = Pathname.new(Pathname.pwd+"#{name}.rb")
|
path = Pathname.new(Pathname.pwd+"#{name}.rb")
|
||||||
path.write text_from_sha(sha)
|
path.write text_from_sha(sha)
|
||||||
# FIXME: shouldn't have to do this?
|
|
||||||
Object.send(:remove_const, "#{name.capitalize}")
|
# Unload the class so Formula#version returns the correct value.
|
||||||
|
# Note that this means that the command will error out after it
|
||||||
|
# encounters a formula that won't import. This doesn't matter
|
||||||
|
# for most formulae, but e.g. Bash at revision aae084c9db has a
|
||||||
|
# syntax error and so `versions` isn't able to walk very far back
|
||||||
|
# through the history.
|
||||||
|
# FIXME shouldn't have to do this?
|
||||||
|
Object.send(:remove_const, "#{Formula.class_s(name)}")
|
||||||
Formula.factory(path).version
|
Formula.factory(path).version
|
||||||
end rescue nil
|
end rescue nil
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user