<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -237,6 +237,8 @@ module Sprinkle
 
         @dependencies.each do |dep|
           package = PACKAGES[dep]
+          package = select_package(dep, package) if package.is_a? Array
+          
           raise &quot;Package definition not found for key: #{dep}&quot; unless package
           block.call(self, package, depth) if block
           packages &lt;&lt; package.tree(depth + 1, &amp;block)</diff>
      <filename>lib/sprinkle/package.rb</filename>
    </modified>
    <modified>
      <diff>@@ -374,6 +374,19 @@ CODE
 
   end
 
+  describe 'virtual package dependencies' do
+    before do
+      @a = package :a do; requires :virtual ; end
+      @v1 = package :v1, :provides =&gt; :virtual do; end
+      @v2 = package :v2, :provides =&gt; :virtual do; end
+    end
+    
+    it 'should select package for an array' do
+      @a.should_receive(:select_package).with(:virtual, [@v1,@v2]).and_return(@v1)
+      @a.tree do; end
+    end
+  end
+
   describe 'with missing dependencies' do
 
     before do</diff>
      <filename>spec/sprinkle/package_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>04e9523b017490e23a2fa0e2f444027f972bf29b</id>
    </parent>
  </parents>
  <author>
    <name>tpitale</name>
    <email>tpitale@gmail.com</email>
  </author>
  <url>http://github.com/crafterm/sprinkle/commit/aa33c45e67d5dafc20e30272656a2312ac8b40a5</url>
  <id>aa33c45e67d5dafc20e30272656a2312ac8b40a5</id>
  <committed-date>2009-03-05T14:39:46-08:00</committed-date>
  <authored-date>2009-02-24T16:08:55-08:00</authored-date>
  <message>packages can require virtual packages</message>
  <tree>0f77bf0a828bf5aea17060579b005f611889daec</tree>
  <committer>
    <name>Marcus Crafter</name>
    <email>crafterm@redartisan.com</email>
  </committer>
</commit>
