From 26c0524f1a7113e98c97f75a01f60cc8b18fd062 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sun, 27 Jan 2013 16:53:42 -0600 Subject: DependencyCollector: return created dep from #add --- Library/Homebrew/dependency_collector.rb | 25 ++++++++++++++-------- Library/Homebrew/test/test_dependency_collector.rb | 5 +++++ 2 files changed, 21 insertions(+), 9 deletions(-) (limited to 'Library') 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? -- cgit v1.2.3