diff options
| author | Camillo Lugaresi | 2012-06-07 22:29:44 +0200 |
|---|---|---|
| committer | Jack Nagel | 2012-07-01 12:15:09 -0500 |
| commit | cb0f8034176caa62f98cd3cec110a640356d4e4c (patch) | |
| tree | 2f6a8244448afa198ae1301d04d517f83e4a64bd | |
| parent | 53eb7031285a049dd36abe6974c89e7a7853fdc0 (diff) | |
| download | homebrew-cb0f8034176caa62f98cd3cec110a640356d4e4c.tar.bz2 | |
Simplify DependencyCollector#add
| -rw-r--r-- | Library/Homebrew/dependencies.rb | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb index 6a8d9039b..5164058d0 100644 --- a/Library/Homebrew/dependencies.rb +++ b/Library/Homebrew/dependencies.rb @@ -25,30 +25,27 @@ class DependencyCollector end def add spec - case spec - when :x11 then @external_deps << X11Dependency.new - when String then @deps << Dependency.new(spec) - when Formula then @deps << Dependency.new(spec.name) - when Dependency then @deps << spec - when Requirement then @external_deps << spec - when Hash - key, value = spec.shift - if key == :x11 - @external_deps << X11Dependency.new(value) + tag = nil + spec, tag = spec.shift if spec.is_a? Hash + + dep = case spec + when :x11 + X11Dependency.new(tag) + when String + if LANGUAGE_MODULES.include? tag + LanguageModuleDependency.new(tag, spec) else - case value - when Array - @deps << Dependency.new(key, value) - when *LANGUAGE_MODULES - @external_deps << LanguageModuleDependency.new(value, key) - else - # :optional, :recommended, :build, :universal and "32bit" are predefined - @deps << Dependency.new(key, [value]) - end + Dependency.new(spec, tag) end + when Formula + Dependency.new(spec.name, tag) + when Dependency, Requirement + spec else raise "Unsupported type #{spec.class} for #{spec}" end + + (dep.is_a?(Requirement) ? @external_deps : @deps) << dep end end @@ -68,8 +65,11 @@ class Dependency def initialize name, tags=nil @name = name - tags = [] if tags == nil - @tags = tags.each {|s| s.to_s} + @tags = case tags + when Array then tags.each {|s| s.to_s} + when nil then [] + else [tags.to_s] + end end def to_s |
