diff options
| author | Adam Vandenberg | 2012-02-28 19:56:35 -0800 |
|---|---|---|
| committer | Adam Vandenberg | 2012-03-10 09:24:10 -0800 |
| commit | cef5429f9373526ed1fe523bcbbbb42b5cf65ea9 (patch) | |
| tree | f5c0965e9288ef1bb36be60872cdd167a0fc2186 /Library/Homebrew/formula.rb | |
| parent | fee00469f61e14e7dd9503a7b3381a95eb49ad81 (diff) | |
| download | brew-cef5429f9373526ed1fe523bcbbbb42b5cf65ea9.tar.bz2 | |
Use new Requirements code in Homebrew
Diffstat (limited to 'Library/Homebrew/formula.rb')
| -rw-r--r-- | Library/Homebrew/formula.rb | 49 |
1 files changed, 13 insertions, 36 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index b1cb3dc0e..4c0634d06 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1,4 +1,5 @@ require 'download_strategy' +require 'dependencies' require 'formula_support' require 'hardware' require 'bottles' @@ -357,17 +358,10 @@ class Formula HOMEBREW_REPOSITORY+"Library/Formula/#{name.downcase}.rb" end - def mirrors - self.class.mirrors or [] - end + def mirrors; self.class.mirrors or []; end - def deps - self.class.deps or [] - end - - def external_deps - self.class.external_deps or {} - end + def deps; self.class.dependencies.deps; end + def external_deps; self.class.dependencies.external_deps; end # deps are in an installable order # which means if a depends on b then b will be ordered before a in this list @@ -377,8 +371,8 @@ class Formula def self.expand_deps f f.deps.map do |dep| - dep = Formula.factory dep - expand_deps(dep) << dep + f_dep = Formula.factory dep.to_s + expand_deps(f_dep) << f_dep end end @@ -603,7 +597,7 @@ private end end - attr_rw :version, :homepage, :mirrors, :specs, :deps, :external_deps + attr_rw :version, :homepage, :mirrors, :specs attr_rw :keg_only_reason, :fails_with_llvm_reason, :skip_clean_all attr_rw :bottle_url, :bottle_sha1 attr_rw(*CHECKSUM_TYPES) @@ -659,29 +653,12 @@ private @mirrors.uniq! end - def depends_on name - @deps ||= [] - @external_deps ||= {:python => [], :perl => [], :ruby => [], :jruby => [], :chicken => [], :rbx => [], :node => [], :lua => []} - - case name - when String, Formula - @deps << name - when Hash - key, value = name.shift - case value - when :python, :perl, :ruby, :jruby, :chicken, :rbx, :node, :lua - @external_deps[value] << key - when :optional, :recommended, :build - @deps << key - else - raise "Unsupported dependency type #{value}" - end - when Symbol - opoo "#{self.name} -- #{name}: Using symbols for deps is deprecated; use a string instead" - @deps << name.to_s - else - raise "Unsupported type #{name.class}" - end + def dependencies + @dependencies ||= DependencyCollector.new + end + + def depends_on dep + dependencies.add(dep) end def skip_clean paths |
