diff options
| author | Jack Nagel | 2014-04-05 22:03:34 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-04-05 22:03:49 -0500 |
| commit | 750880f292f906fb640c032339bb839393eb1d9c (patch) | |
| tree | 5c82440b7602a5f44958072c75a3f362b06a471f /Library/Homebrew | |
| parent | 866a51b2f15195bfa83fcb2c8e3a5cf2014ff622 (diff) | |
| download | homebrew-750880f292f906fb640c032339bb839393eb1d9c.tar.bz2 | |
Implement canonical_name in Formulary
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/formula.rb | 38 | ||||
| -rw-r--r-- | Library/Homebrew/formulary.rb | 4 |
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)://] |
