From 2492c6564d76d4a000f99f69e1aae85d5a707c10 Mon Sep 17 00:00:00 2001 From: Charlie Sharpsteen Date: Sun, 11 Sep 2011 13:06:05 -0700 Subject: [PATCH] Return Formula objects from `outdated_brews` Previously, `outdated_brews` returned a list of lists---each containing three components of a Formula object: - f.rack - f.name - f.version Frequently more information is required which necessitates back-casting from `name` to a Formula object---simpy returning formula objects removes this step. --- Library/Homebrew/cmd/outdated.rb | 12 ++++++------ Library/Homebrew/cmd/upgrade.rb | 13 ++++++------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Library/Homebrew/cmd/outdated.rb b/Library/Homebrew/cmd/outdated.rb index 37fba0f992..40aa7a470b 100644 --- a/Library/Homebrew/cmd/outdated.rb +++ b/Library/Homebrew/cmd/outdated.rb @@ -2,12 +2,12 @@ require 'formula' module Homebrew extend self def outdated - outdated_brews.each do |keg, name, version| + outdated_brews.each do |f| if $stdout.tty? and not ARGV.flag? '--quiet' - versions = keg.cd{ Dir['*'] }.join(', ') - puts "#{name} (#{versions} < #{version})" + versions = f.rack.cd{ Dir['*'] }.join(', ') + puts "#{f.name} (#{versions} < #{f.version})" else - puts name + puts f.name end end end @@ -22,7 +22,7 @@ module Homebrew extend self name = rack.basename.to_s f = Formula.factory name rescue nil - [rack, name, f.version] if f and not f.installed? + f if f and not f.installed? end.compact end -end \ No newline at end of file +end diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index 99fcf6fa01..97d32bbf64 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -14,24 +14,23 @@ module Homebrew extend self outdated = if ARGV.named.empty? Homebrew.outdated_brews else - ARGV.formulae.map do |f| + ARGV.formulae.each do |f| raise "#{f} already upgraded" if f.installed? raise "#{f} not installed" unless f.rack.exist? and not f.rack.children.empty? - [f.rack, f.name, f.version] end end if outdated.length > 1 oh1 "Upgrading #{outdated.length} outdated package#{outdated.length.plural_s}, with result:" - puts outdated.map{ |_, name, version| "#{name} #{version}" } * ", " + puts outdated.map{ |f| "#{f.name} #{f.version}" } * ", " end - outdated.each do |rack, name, version| - installer = FormulaInstaller.new(Formula.factory(name)) + outdated.each do |f| + installer = FormulaInstaller.new f installer.show_header = false - oh1 "Upgrading #{name}" + oh1 "Upgrading #{f.name}" installer.install - Keg.new("#{rack}/#{version}").unlink + Keg.new("#{f.rack}/#{f.version}").unlink installer.caveats installer.finish # includes link step end