diff options
| author | Max Howell | 2009-09-05 14:30:56 +0100 |
|---|---|---|
| committer | Max Howell | 2009-09-05 14:35:26 +0100 |
| commit | b06eb7feff5f97debbe222d00157636a298d9ebb (patch) | |
| tree | ee396fa969e1785b29ff9cf7d5944be33efa141f /Library | |
| parent | 53450d1436966be349ab309299fd4021e311a86b (diff) | |
| download | homebrew-b06eb7feff5f97debbe222d00157636a298d9ebb.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.rb | 15 | ||||
| -rwxr-xr-x | Library/Homebrew/unittest.rb | 10 |
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 } |
