From ef6488bf5ede474aeffd3cb696078f04bdea7667 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Tue, 9 Mar 2010 02:18:08 +0000 Subject: [PATCH] New Aliasing system is plenty less code :) --- Library/Homebrew/formula.rb | 98 ++++++------------------------------- 1 file changed, 14 insertions(+), 84 deletions(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index d6dbb74411..b2c684d926 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -11,61 +11,6 @@ class FormulaUnavailableError e - opoo "Error importing #{name}:" - puts "#{e}" - end - end - end - - # returns a map of aliases to actual names - # eg { 'ocaml' => 'objective-caml' } - def self.get_aliases - aliases = {} - Formulary.read_all do |name, klass| - aka = klass.aliases - next if aka == nil - - aka.each {|item| aliases[item.to_s] = name } - end - return aliases - end - - def self.find_alias name - aliases = Formulary.get_aliases - return aliases[name] - end -end - - # Derive and define at least @url, see Library/Formula for examples class Formula include FileUtils @@ -235,21 +180,19 @@ class Formula name.capitalize.gsub(/[-_.\s]([a-zA-Z0-9])/) { $1.upcase } \ .gsub('+', 'x') end - - def self.get_used_by - used_by = {} - Formulary.read_all do |name, klass| - deps = klass.deps - next if deps == nil - deps.each do |dep| - _deps = used_by[dep] || [] - _deps << name unless _deps.include? name - used_by[dep] = _deps - end - end - - return used_by + # an array of all Formula names + def self.names + Dir["#{HOMEBREW_REPOSITORY}/Library/Formula/*.rb"].map{ |f| File.basename f, '.rb' }.sort + end + + # an array of all Formula, instantiated + def self.all + names.map{ |fn| Formula.factory(fn) } + end + + def self.aliases + Dir["#{HOMEBREW_REPOSITORY}/Library/Aliases/*"].map{ |f| File.basename f }.sort end def self.factory name @@ -259,15 +202,7 @@ class Formula require name name = path.stem else - begin - require self.path(name) - rescue LoadError => e - # Couldn't find formula 'name', so look for an alias. - real_name = Formulary.find_alias name - raise e if real_name == nil - puts "#{name} is an alias for #{real_name}" - name = real_name - end + require self.path(name) end begin klass_name =self.class_s(name) @@ -495,7 +430,7 @@ EOF end end - attr_rw :url, :version, :homepage, :specs, :deps, :external_deps, :aliases, *CHECKSUM_TYPES + attr_rw :url, :version, :homepage, :specs, :deps, :external_deps, *CHECKSUM_TYPES def head val=nil, specs=nil if specs @@ -503,11 +438,6 @@ EOF end val.nil? ? @head : @head = val end - - def aka *args - @aliases ||= [] - args.each { |item| @aliases << item.to_s } - end def depends_on name @deps ||= []