diff options
| author | Jack Nagel | 2013-01-27 16:53:42 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-01-28 10:35:14 -0600 |
| commit | 26c0524f1a7113e98c97f75a01f60cc8b18fd062 (patch) | |
| tree | 2c2871ff02045daf298936d91f28874b7d1486f1 /Library | |
| parent | 210401654bd7f22edc843164a7fea28f85b0b219 (diff) | |
| download | brew-26c0524f1a7113e98c97f75a01f60cc8b18fd062.tar.bz2 | |
DependencyCollector: return created dep from #add
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/dependency_collector.rb | 25 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_dependency_collector.rb | 5 |
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? |
