aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMax Howell2009-09-05 14:30:56 +0100
committerMax Howell2009-09-05 14:35:26 +0100
commite30c1c88504fdbc796666c72cb0dfb35b067f2dc (patch)
tree6d429c39fbb35869c1f95c8280dc1538e4481904 /Library
parenta4ba1c137f7331585a59038ba057b24dcc6176c0 (diff)
downloadbrew-e30c1c88504fdbc796666c72cb0dfb35b067f2dc.tar.bz2
Cache ARGV calcs
Means unshift doesn't work, but well, that's almost a feature :P
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/ARGV+yeast.rb15
-rwxr-xr-xLibrary/Homebrew/unittest.rb10
2 files changed, 16 insertions, 9 deletions
diff --git a/Library/Homebrew/ARGV+yeast.rb b/Library/Homebrew/ARGV+yeast.rb
index a37e1dc1b..9c5317153 100644
--- a/Library/Homebrew/ARGV+yeast.rb
+++ b/Library/Homebrew/ARGV+yeast.rb
@@ -23,23 +23,22 @@
#
module HomebrewArgvExtension
def named
- nn=namedp
- raise UsageError if nn.empty?
- nn
+ raise UsageError if _named.empty?
+ _named
end
def named_empty?
- namedp.empty?
+ _named.empty?
end
def options
select {|arg| arg[0..0] == '-'}
end
def formulae
require 'formula'
- named.collect {|name| Formula.factory name}
+ @formulae ||= named.collect {|name| Formula.factory name}
end
def kegs
require 'keg'
- named.collect do |name|
+ @kegs ||= named.collect do |name|
d=HOMEBREW_CELLAR+name
raise "#{name} is not installed" if not d.directory? or d.children.length == 0
raise "#{name} has multiple installed versions" if d.children.length > 1
@@ -99,8 +98,8 @@ To visit the Homebrew homepage type:
end
private
- def namedp
- nn=reject{|arg| arg[0..0] == '-'}.collect{|arg| arg.downcase}.uniq
+ def _named
+ @named ||= reject{|arg| arg[0..0] == '-'}.collect{|arg| arg.downcase}.uniq
end
end
diff --git a/Library/Homebrew/unittest.rb b/Library/Homebrew/unittest.rb
index 729cb7997..34ab4f509 100755
--- a/Library/Homebrew/unittest.rb
+++ b/Library/Homebrew/unittest.rb
@@ -105,6 +105,14 @@ def nostdout
end
end
+module ExtendArgvPlusYeast
+ def stick_an_arg_in_thar
+ @named=nil
+ unshift 'foo'
+ end
+end
+ARGV.extend ExtendArgvPlusYeast
+
class BeerTasting <Test::Unit::TestCase
def test_version_all_dots
@@ -316,7 +324,7 @@ class BeerTasting <Test::Unit::TestCase
(HOMEBREW_CELLAR+'foo'+'0.1').mkpath
- ARGV.unshift 'foo'
+ ARGV.stick_an_arg_in_thar
assert_equal 1, ARGV.named.length
assert_equal 1, ARGV.kegs.length
assert_raises(FormulaUnavailableError) { ARGV.formulae }