From 94dba21f7d5c3a1c6d935b62dd965c491a158e40 Mon Sep 17 00:00:00 2001 From: Charlie Sharpsteen Date: Sun, 11 Sep 2011 12:57:53 -0700 Subject: [PATCH] Centralize definition of `rack` in formula.rb `rack` is a commonly used alias for `formula.prefix.parent`---so common that it gets defined and used quite a bit. This patch makes `rack` an official method of the `Formula` class. --- Library/Homebrew/build.rb | 2 +- Library/Homebrew/cmd/cleanup.rb | 9 ++++----- Library/Homebrew/cmd/info.rb | 5 ++--- Library/Homebrew/cmd/uninstall.rb | 7 +++---- Library/Homebrew/cmd/upgrade.rb | 8 +------- Library/Homebrew/formula.rb | 1 + 6 files changed, 12 insertions(+), 20 deletions(-) diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index 36c3da268e..f704e05ef6 100755 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -86,7 +86,7 @@ def install f rescue Exception if f.prefix.directory? f.prefix.rmtree - f.prefix.parent.rmdir_if_possible + f.rack.rmdir_if_possible end raise end diff --git a/Library/Homebrew/cmd/cleanup.rb b/Library/Homebrew/cmd/cleanup.rb index f5f11599c5..0f9f2c3cb9 100644 --- a/Library/Homebrew/cmd/cleanup.rb +++ b/Library/Homebrew/cmd/cleanup.rb @@ -23,25 +23,24 @@ module Homebrew extend self def cleanup_formula f f = Formula.factory f - rack = f.prefix.parent # Don't clean up keg-only brews for now. # Formulae link directly to them, so cleaning up old # ones will break already compiled software. if f.keg_only? and not ARGV.force? - opoo "Skipping keg-only #{f.name}" if rack.children.length > 1 + opoo "Skipping keg-only #{f.name}" if f.rack.children.length > 1 return end - if f.installed? and rack.directory? - rack.children.each do |keg| + if f.installed? and f.rack.directory? + f.rack.children.each do |keg| if f.installed_prefix != keg print "Removing #{keg}..." rm_rf keg puts end end - elsif rack.children.length > 1 + elsif f.rack.children.length > 1 # If the cellar only has one version installed, don't complain # that we can't tell which one to keep. opoo "Skipping #{f.name}: most recent version #{f.version} not installed" diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 637e849c53..9c950801a2 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -50,9 +50,8 @@ module Homebrew extend self puts "Depends on: #{f.deps*', '}" unless f.deps.empty? - rack = f.prefix.parent - if rack.directory? - kegs = rack.children + if f.rack.directory? + kegs = f.rack.children kegs.each do |keg| next if keg.basename.to_s == '.DS_Store' print "#{keg} (#{keg.abv})" diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index 76c94969a4..7392c26b73 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -10,17 +10,16 @@ module Homebrew extend self end else ARGV.formulae.each do |f| - rack = f.prefix.parent - if rack.directory? + if f.rack.directory? puts "Uninstalling #{f}..." - rack.children.each do |keg| + f.rack.children.each do |keg| if keg.directory? keg = Keg.new(keg) keg.unlink keg.rmtree end end - rack.rmtree + f.rack.rmtree end end end diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index 1303c19730..99fcf6fa01 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -7,12 +7,6 @@ class Fixnum end end -class Formula - def rack - HOMEBREW_CELLAR/name - end -end - module Homebrew extend self def upgrade Homebrew.perform_preinstall_checks @@ -23,7 +17,7 @@ module Homebrew extend self ARGV.formulae.map do |f| raise "#{f} already upgraded" if f.installed? raise "#{f} not installed" unless f.rack.exist? and not f.rack.children.empty? - [f.prefix.parent, f.name, f.version] + [f.rack, f.name, f.version] end end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ca8e489c37..2ecf307586 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -170,6 +170,7 @@ class Formula validate_variable :version HOMEBREW_CELLAR+@name+@version end + def rack; prefix.parent end def bin; prefix+'bin' end def doc; prefix+'share/doc'+name end