aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorXu Cheng2015-05-08 19:54:29 +0800
committerXu Cheng2015-05-27 13:53:40 +0800
commite2b0bca93117179c359e0ecc2653e061f4ea305c (patch)
treebb695127203ce3cf395890bd2148d8559c34bab4 /Library
parent811c4c5add5048e2e67814045e6d5fbb7820ddcb (diff)
downloadbrew-e2b0bca93117179c359e0ecc2653e061f4ea305c.tar.bz2
add Formula.core_names Formula.tap_names and Formula.full_names
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/readall.rb2
-rw-r--r--Library/Homebrew/cmd/search.rb4
-rw-r--r--Library/Homebrew/formula.rb26
3 files changed, 27 insertions, 5 deletions
diff --git a/Library/Homebrew/cmd/readall.rb b/Library/Homebrew/cmd/readall.rb
index ce5be80a8..399618dd8 100644
--- a/Library/Homebrew/cmd/readall.rb
+++ b/Library/Homebrew/cmd/readall.rb
@@ -32,7 +32,7 @@ module Homebrew
formulae = []
if ARGV.named.empty?
- formulae = Formula.names
+ formulae = Formula.full_names
else
user, repo = tap_args
user.downcase!
diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb
index 5ac9db391..436726274 100644
--- a/Library/Homebrew/cmd/search.rb
+++ b/Library/Homebrew/cmd/search.rb
@@ -28,7 +28,7 @@ module Homebrew
end
end
elsif ARGV.empty?
- puts_columns Formula.names
+ puts_columns Formula.full_names
elsif ARGV.first =~ HOMEBREW_TAP_FORMULA_REGEX
query = ARGV.first
user, repo, name = query.split("/", 3)
@@ -152,7 +152,7 @@ module Homebrew
def search_formulae rx
aliases = Formula.aliases
- results = (Formula.names+aliases).grep(rx).sort
+ results = (Formula.full_names+aliases).grep(rx).sort
# Filter out aliases when the full name was also found
results.reject do |name|
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 822f17509..60c9fa65a 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -603,13 +603,35 @@ class Formula
alias_method :python2, :python
alias_method :python3, :python
+ # an array of all core {Formula} names
+ def self.core_names
+ Dir["#{HOMEBREW_LIBRARY}/Formula/*.rb"].map{ |f| File.basename f, ".rb" }.sort
+ end
+
+ # an array of all tap {Formula} names
+ def self.tap_names
+ names = []
+ Pathname.glob("#{HOMEBREW_LIBRARY}/Taps/*/*/") do |tap|
+ tap.find_formula do |formula|
+ formula.to_s =~ HOMEBREW_TAP_PATH_REGEX
+ names << "#{$1}/#{$2.gsub(/^homebrew-/, "")}/#{formula.basename(".rb")}"
+ end
+ end
+ names.sort
+ end
+
# an array of all {Formula} names
def self.names
- Dir["#{HOMEBREW_LIBRARY}/Formula/*.rb"].map{ |f| File.basename f, '.rb' }.sort
+ (core_names + tap_names.map { |name| name.split("/")[-1] }).sort.uniq
+ end
+
+ # an array of all {Formula} names, which the tap formulae have the fully-qualified name
+ def self.full_names
+ core_names + tap_names
end
def self.each
- names.each do |name|
+ full_names.each do |name|
begin
yield Formulary.factory(name)
rescue StandardError => e