Simplify DependencyCollector#add

This commit is contained in:
Camillo Lugaresi 2012-06-07 22:29:44 +02:00 committed by Jack Nagel
parent 243b14a090
commit 1847595168

View File

@ -25,30 +25,27 @@ class DependencyCollector
end end
def add spec def add spec
case spec tag = nil
when :x11 then @external_deps << X11Dependency.new spec, tag = spec.shift if spec.is_a? Hash
when String then @deps << Dependency.new(spec)
when Formula then @deps << Dependency.new(spec.name) dep = case spec
when Dependency then @deps << spec when :x11
when Requirement then @external_deps << spec X11Dependency.new(tag)
when Hash when String
key, value = spec.shift if LANGUAGE_MODULES.include? tag
if key == :x11 LanguageModuleDependency.new(tag, spec)
@external_deps << X11Dependency.new(value)
else else
case value Dependency.new(spec, tag)
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
end end
when Formula
Dependency.new(spec.name, tag)
when Dependency, Requirement
spec
else else
raise "Unsupported type #{spec.class} for #{spec}" raise "Unsupported type #{spec.class} for #{spec}"
end end
(dep.is_a?(Requirement) ? @external_deps : @deps) << dep
end end
end end
@ -68,8 +65,11 @@ class Dependency
def initialize name, tags=nil def initialize name, tags=nil
@name = name @name = name
tags = [] if tags == nil @tags = case tags
@tags = tags.each {|s| s.to_s} when Array then tags.each {|s| s.to_s}
when nil then []
else [tags.to_s]
end
end end
def to_s def to_s