aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-04-05 22:03:34 -0500
committerJack Nagel2014-04-05 22:03:49 -0500
commit20f4b3176342f328ba83b02482d13fe5a7d62215 (patch)
tree8071bb31510ce195b6b6d694770fcdc8511d7670 /Library
parente891bb42726679b7fb7e347b8bf4cabcff1bec22 (diff)
downloadbrew-20f4b3176342f328ba83b02482d13fe5a7d62215.tar.bz2
Implement canonical_name in Formulary
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula.rb38
-rw-r--r--Library/Homebrew/formulary.rb4
2 files changed, 5 insertions, 37 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 9c83a6523..d4225261a 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -390,44 +390,8 @@ class Formula
Dir["#{HOMEBREW_LIBRARY}/Aliases/*"].map{ |f| File.basename f }.sort
end
- # TODO - document what this returns and why
def self.canonical_name name
- # if name includes a '/', it may be a tap reference, path, or URL
- if name.include? "/"
- if name =~ %r{(.+)/(.+)/(.+)}
- tap_name = "#$1-#$2".downcase
- tapd = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{tap_name}")
-
- if tapd.directory?
- tapd.find_formula do |relative_pathname|
- return "#{tapd}/#{relative_pathname}" if relative_pathname.stem.to_s == $3
- end
- end
- end
- # Otherwise don't resolve paths or URLs
- return name
- end
-
- # test if the name is a core formula
- formula_with_that_name = Formula.path(name)
- if formula_with_that_name.file? and formula_with_that_name.readable?
- return name
- end
-
- # test if the name is a formula alias
- possible_alias = Pathname.new("#{HOMEBREW_LIBRARY}/Aliases/#{name}")
- if possible_alias.file?
- return possible_alias.resolved_path.basename(".rb").to_s
- end
-
- # test if the name is a cached downloaded formula
- possible_cached_formula = Pathname.new("#{HOMEBREW_CACHE_FORMULA}/#{name}.rb")
- if possible_cached_formula.file?
- return possible_cached_formula.to_s
- end
-
- # dunno, pass through the name
- return name
+ Formulary.canonical_name(name)
end
def self.[](name)
diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb
index c2f415628..710cd151d 100644
--- a/Library/Homebrew/formulary.rb
+++ b/Library/Homebrew/formulary.rb
@@ -178,6 +178,10 @@ class Formulary
loader_for(ref).get_formula
end
+ def self.canonical_name(ref)
+ loader_for(ref).name
+ end
+
def self.loader_for(ref)
case ref
when %r[(https?|ftp)://]