diff options
| author | Vlad Shablinsky | 2016-06-27 13:08:19 +0300 |
|---|---|---|
| committer | Xu Cheng | 2016-06-29 21:04:27 +0800 |
| commit | 9c15174e3cfa9a1f832b6532ef7480ef2b16a44e (patch) | |
| tree | 9b92276f9b4a697b2e4a20ac8943ad22fc02fd7b /Library | |
| parent | d47df68cbd03fb621825d12a531f91938571ec04 (diff) | |
| download | brew-9c15174e3cfa9a1f832b6532ef7480ef2b16a44e.tar.bz2 | |
formula: simplify outdated_versions logic
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/formula.rb | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ebd23768d..cb58824f3 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -956,33 +956,25 @@ class Formula @oldname_lock.unlock unless @oldname_lock.nil? end + def migration_needed? + oldname && !rack.exist? && (dir = HOMEBREW_CELLAR/oldname).directory? && + !dir.subdirs.empty? && tap == Tab.for_keg(dir.subdirs.first).tap + end + # @private def outdated_versions @outdated_versions ||= begin all_versions = [] - older_or_same_tap_versions = [] - if oldname && !rack.exist? && (dir = HOMEBREW_CELLAR/oldname).directory? && - !dir.subdirs.empty? && tap == Tab.for_keg(dir.subdirs.first).tap - raise Migrator::MigrationNeededError.new(self) - end + raise Migrator::MigrationNeededError.new(self) if migration_needed? installed_kegs.each do |keg| version = keg.version all_versions << version - older_version = pkg_version <= version - - tab_tap = Tab.for_keg(keg).tap - if tab_tap.nil? || tab_tap == tap || older_version - older_or_same_tap_versions << version - end + return [] if pkg_version <= version end - if older_or_same_tap_versions.all? { |v| pkg_version > v } - all_versions.sort! - else - [] - end + all_versions.sort! end end |
