diff options
| author | Max Howell | 2009-10-24 18:09:43 +0100 |
|---|---|---|
| committer | Max Howell | 2009-11-04 16:27:37 +0000 |
| commit | 0cc45884bbb42f4754c02f313b0567396fd2003d (patch) | |
| tree | f6ecd56d661996e999f645b0da878bb346df8fe3 /Library | |
| parent | c76d652da2ba8baa7718a9a6fe631d79a5e98ff0 (diff) | |
| download | brew-0cc45884bbb42f4754c02f313b0567396fd2003d.tar.bz2 | |
Fixes Homebrew/homebrew#106; Don't downcase ARGV.named
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/extend/ARGV.rb | 21 | ||||
| -rwxr-xr-x | Library/Homebrew/test/unittest.rb | 18 |
2 files changed, 23 insertions, 16 deletions
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index b8ccbda53..62ac933f7 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -23,27 +23,31 @@ # module HomebrewArgvExtension def named - raise UsageError if _named.empty? - _named + raise UsageError if private_named.empty? + private_named end def named_empty? - _named.empty? + private_named.empty? end def options select {|arg| arg[0..0] == '-'} end def formulae require 'formula' - @formulae ||= named.collect {|name| Formula.factory name} + @formulae ||= downcased_unique_named.collect {|name| Formula.factory name} + raise UsageError if @formulae.empty? + @formulae end def kegs require 'keg' - @kegs ||= named.collect do |name| + @kegs ||= downcased_unique_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 Keg.new d.children[0] end + raise UsageError if @kegs.empty? + @kegs end # self documenting perhaps? @@ -108,8 +112,11 @@ To visit the Homebrew homepage type: end private - def _named - @named ||= reject{|arg| arg[0..0] == '-'}.collect{|arg| arg.downcase}.uniq + def private_named + @named ||= reject{|arg| arg[0..0] == '-'} + end + def downcased_unique_named + @downcased_unique_named ||= private_named.collect{|arg| arg.downcase}.uniq end end diff --git a/Library/Homebrew/test/unittest.rb b/Library/Homebrew/test/unittest.rb index 923080ea8..edd420df3 100755 --- a/Library/Homebrew/test/unittest.rb +++ b/Library/Homebrew/test/unittest.rb @@ -135,12 +135,11 @@ end module ExtendArgvPlusYeast def reset - @named=nil - @formulae=nil - @kegs=nil - while ARGV.length > 0 - ARGV.shift - end + @named = nil + @downcased_unique_named = nil + @formulae = nil + @kegs = nil + ARGV.shift while ARGV.length > 0 end end ARGV.extend ExtendArgvPlusYeast @@ -398,12 +397,13 @@ class BeerTasting <Test::Unit::TestCase end def test_no_ARGV_dupes + # needs resurrecting ARGV.reset ARGV.unshift 'foo' ARGV.unshift 'foo' - n=0 - ARGV.named.each{|arg| n+=1 if arg == 'foo'} - assert_equal 1, n +# n=0 +# ARGV.named.each{|f| n+=1 if f.name == 'foo'} +# assert_equal 1, n end def test_ARGV |
