Merge pull request #2727 from reitermarkus/refactor-formula-versions

Refactor `FormulaVersions`.
This commit is contained in:
Markus Reiter 2017-06-04 11:59:44 +02:00 committed by GitHub
commit 515411707a

View File

@ -17,6 +17,7 @@ class FormulaVersions
@repository = formula.tap.path @repository = formula.tap.path
@entry_name = @path.relative_path_from(repository).to_s @entry_name = @path.relative_path_from(repository).to_s
@current_formula = formula @current_formula = formula
@formula_at_revision = {}
end end
def rev_list(branch) def rev_list(branch)
@ -32,11 +33,12 @@ class FormulaVersions
end end
def formula_at_revision(rev) def formula_at_revision(rev)
contents = file_contents_at_revision(rev)
begin
Homebrew.raise_deprecation_exceptions = true Homebrew.raise_deprecation_exceptions = true
yield nostdout { Formulary.from_contents(name, path, contents) }
yield @formula_at_revision[rev] ||= begin
contents = file_contents_at_revision(rev)
nostdout { Formulary.from_contents(name, path, contents) }
end
rescue *IGNORED_EXCEPTIONS => e rescue *IGNORED_EXCEPTIONS => e
# We rescue these so that we can skip bad versions and # We rescue these so that we can skip bad versions and
# continue walking the history # continue walking the history
@ -46,7 +48,6 @@ class FormulaVersions
ensure ensure
Homebrew.raise_deprecation_exceptions = false Homebrew.raise_deprecation_exceptions = false
end end
end
def bottle_version_map(branch) def bottle_version_map(branch)
map = Hash.new { |h, k| h[k] = [] } map = Hash.new { |h, k| h[k] = [] }