aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorCamillo Lugaresi2012-06-07 22:29:44 +0200
committerJack Nagel2012-07-01 12:15:09 -0500
commitcb0f8034176caa62f98cd3cec110a640356d4e4c (patch)
tree2f6a8244448afa198ae1301d04d517f83e4a64bd /Library/Homebrew
parent53eb7031285a049dd36abe6974c89e7a7853fdc0 (diff)
downloadhomebrew-cb0f8034176caa62f98cd3cec110a640356d4e4c.tar.bz2
Simplify DependencyCollector#add
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/dependencies.rb42
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