aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-01-27 16:53:42 -0600
committerJack Nagel2013-01-28 10:35:14 -0600
commit26c0524f1a7113e98c97f75a01f60cc8b18fd062 (patch)
tree2c2871ff02045daf298936d91f28874b7d1486f1 /Library
parent210401654bd7f22edc843164a7fea28f85b0b219 (diff)
downloadbrew-26c0524f1a7113e98c97f75a01f60cc8b18fd062.tar.bz2
DependencyCollector: return created dep from #add
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/dependency_collector.rb25
-rw-r--r--Library/Homebrew/test/test_dependency_collector.rb5
2 files changed, 21 insertions, 9 deletions
diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb
index 8a8bdd340..f022e870c 100644
--- a/Library/Homebrew/dependency_collector.rb
+++ b/Library/Homebrew/dependency_collector.rb
@@ -26,16 +26,23 @@ class DependencyCollector
@requirements = ComparableSet.new
end
- def add spec
- tag = nil
- spec, tag = spec.shift if spec.is_a? Hash
+ def add(spec)
+ case dep = build(spec)
+ when Dependency
+ @deps << dep
+ when Requirement
+ @requirements << dep
+ end
+ dep
+ end
+
+ def build(spec)
+ spec, tag = case spec
+ when Hash then spec.shift
+ else spec
+ end
- dep = parse_spec(spec, tag)
- # Some symbol specs are conditional, and resolve to nil if there is no
- # dependency needed for the current platform.
- return if dep.nil?
- # Add dep to the correct bucket
- (dep.is_a?(Requirement) ? @requirements : @deps) << dep
+ parse_spec(spec, tag)
end
private
diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb
index 20cbe1bfc..61ff22d33 100644
--- a/Library/Homebrew/test/test_dependency_collector.rb
+++ b/Library/Homebrew/test/test_dependency_collector.rb
@@ -24,6 +24,11 @@ class DependencyCollectorTests < Test::Unit::TestCase
assert_equal 2, @d.find_dependency('bar').tags.length
end
+ def test_add_returns_created_dep
+ ret = @d.add 'foo'
+ assert_equal Dependency.new('foo'), ret
+ end
+
def test_dependency_tags
assert Dependency.new('foo', :build).build?
assert Dependency.new('foo', [:build, :optional]).optional?