Cache ARGV calcs
Means unshift doesn't work, but well, that's almost a feature :P
This commit is contained in:
parent
a4ba1c137f
commit
e30c1c8850
@ -23,23 +23,22 @@
|
|||||||
#
|
#
|
||||||
module HomebrewArgvExtension
|
module HomebrewArgvExtension
|
||||||
def named
|
def named
|
||||||
nn=namedp
|
raise UsageError if _named.empty?
|
||||||
raise UsageError if nn.empty?
|
_named
|
||||||
nn
|
|
||||||
end
|
end
|
||||||
def named_empty?
|
def named_empty?
|
||||||
namedp.empty?
|
_named.empty?
|
||||||
end
|
end
|
||||||
def options
|
def options
|
||||||
select {|arg| arg[0..0] == '-'}
|
select {|arg| arg[0..0] == '-'}
|
||||||
end
|
end
|
||||||
def formulae
|
def formulae
|
||||||
require 'formula'
|
require 'formula'
|
||||||
named.collect {|name| Formula.factory name}
|
@formulae ||= named.collect {|name| Formula.factory name}
|
||||||
end
|
end
|
||||||
def kegs
|
def kegs
|
||||||
require 'keg'
|
require 'keg'
|
||||||
named.collect do |name|
|
@kegs ||= named.collect do |name|
|
||||||
d=HOMEBREW_CELLAR+name
|
d=HOMEBREW_CELLAR+name
|
||||||
raise "#{name} is not installed" if not d.directory? or d.children.length == 0
|
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
|
raise "#{name} has multiple installed versions" if d.children.length > 1
|
||||||
@ -99,8 +98,8 @@ To visit the Homebrew homepage type:
|
|||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def namedp
|
def _named
|
||||||
nn=reject{|arg| arg[0..0] == '-'}.collect{|arg| arg.downcase}.uniq
|
@named ||= reject{|arg| arg[0..0] == '-'}.collect{|arg| arg.downcase}.uniq
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -105,6 +105,14 @@ def nostdout
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module ExtendArgvPlusYeast
|
||||||
|
def stick_an_arg_in_thar
|
||||||
|
@named=nil
|
||||||
|
unshift 'foo'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ARGV.extend ExtendArgvPlusYeast
|
||||||
|
|
||||||
|
|
||||||
class BeerTasting <Test::Unit::TestCase
|
class BeerTasting <Test::Unit::TestCase
|
||||||
def test_version_all_dots
|
def test_version_all_dots
|
||||||
@ -316,7 +324,7 @@ class BeerTasting <Test::Unit::TestCase
|
|||||||
|
|
||||||
(HOMEBREW_CELLAR+'foo'+'0.1').mkpath
|
(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.named.length
|
||||||
assert_equal 1, ARGV.kegs.length
|
assert_equal 1, ARGV.kegs.length
|
||||||
assert_raises(FormulaUnavailableError) { ARGV.formulae }
|
assert_raises(FormulaUnavailableError) { ARGV.formulae }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user