class UsageError 1 Keg.new dirs.first end raise KegUnspecifiedError if @kegs.empty? @kegs end # self documenting perhaps? def include? arg @n=index arg end def next at @n+1 or raise UsageError end def force? flag? '--force' end def verbose? flag? '--verbose' or ENV['HOMEBREW_VERBOSE'] end def debug? flag? '--debug' or ENV['HOMEBREW_DEBUG'] end def quieter? flag? '--quieter' end def interactive? flag? '--interactive' end def build_head? flag? '--HEAD' end def flag? flag options_only.each do |arg| return true if arg == flag next if arg[1..1] == '-' return true if arg.include? flag[2..2] end return false end def usage; <<-EOS.undent Usage: brew [-v|--version] [--prefix [formula]] [--cache [formula]] [--cellar [formula]] [--config] [--env] [--repository] [-h|--help] COMMAND [formula] ... Principal Commands: install formula ... [--ignore-dependencies] [--HEAD] list [--unbrewed|--versions] [formula] ... search [/regex/] [substring] uninstall formula ... update Other Commands: info formula [--github] options formula deps formula uses formula [--installed] home formula ... cleanup [formula] link formula ... unlink formula ... outdated missing prune doctor Informational: --version --config --prefix [formula] --cache [formula] Commands useful when contributing: create URL edit [formula] audit [formula] log formula install formula [-vd|-i] For more information: man brew To visit the Homebrew homepage type: brew home EOS end private def downcased_unique_named # Only lowercase names, not paths or URLs @downcased_unique_named ||= named.map do |arg| arg.include?("/") ? arg : arg.downcase end.uniq end end