<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -29,6 +29,13 @@ module Rails
       end
     end
 
+    def self.from_directory_name(directory_name)
+      directory_name_parts = File.basename(directory_name).split('-')
+      name    = directory_name_parts[0..-2].join('-')
+      version = directory_name_parts.last
+      self.new(name, :version =&gt; version)
+    end
+
     def initialize(name, options = {})
       require 'rubygems' unless Object.const_defined?(:Gem)
 </diff>
      <filename>railties/lib/rails/gem_dependency.rb</filename>
    </modified>
    <modified>
      <diff>@@ -20,8 +20,7 @@ namespace :gems do
   desc &quot;Build any native extensions for unpacked gems&quot;
   task :build do
     $gems_build_rake_task = true
-    Rake::Task['gems:unpack'].invoke
-    current_gems.each &amp;:build
+    frozen_gems.each &amp;:build
   end
 
   desc &quot;Installs all required gems.&quot;
@@ -53,6 +52,12 @@ def current_gems
   gems
 end
 
+def frozen_gems
+  Dir[File.join(RAILS_ROOT, 'vendor', 'gems', '*-*')].map do |gem_dir|
+    Rails::GemDependency.from_directory_name(gem_dir)
+  end
+end
+
 def print_gem_status(gem, indent=1)
   code = case
     when gem.framework_gem? then 'R'</diff>
      <filename>railties/lib/tasks/gems.rake</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>651611999df3e57de6f36486b51abd3bf5d66cea</id>
    </parent>
  </parents>
  <author>
    <name>David Dollar</name>
    <email>ddollar@gmail.com</email>
  </author>
  <url>http://github.com/ddollar/rails/commit/e695f986bf0d33f12bd2d8fd4c567ef4f0b3b33a</url>
  <id>e695f986bf0d33f12bd2d8fd4c567ef4f0b3b33a</id>
  <committed-date>2009-04-01T13:54:06-07:00</committed-date>
  <authored-date>2009-04-01T13:54:06-07:00</authored-date>
  <message>Change the gems:build task to not require initialization of the environment.

This change causes the gems:build task to load its list of gems by parsing
the directories under vendor/gems, which sidesteps the chicken/egg issues
involved with having a gem unpacked into vendor/gems without before its
native bits are compiled.</message>
  <tree>943b20c7c4d5cf071d6b0390e637e0c68b812456</tree>
  <committer>
    <name>David Dollar</name>
    <email>ddollar@gmail.com</email>
  </committer>
</commit>
