<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -20,8 +20,27 @@ PROJECT_COPYRIGHT   = [
   &quot;# All files in this distribution are subject to the terms of the Ruby license.&quot;
 ]
 
-# To release the monthly version do:
-# $ VERSION=2009.03 rake release
+DEPENDENCIES = {
+  'innate' =&gt; {:version =&gt; '= 2009.07'},
+}
+
+DEVELOPMENT_DEPENDENCIES = {
+  'Remarkably'       =&gt; {:version =&gt; '~&gt; 0.5.2', :lib =&gt; 'remarkably'},
+  'bacon'            =&gt; {:version =&gt; '&gt;= 1.1.0'},
+  'erubis'           =&gt; {:version =&gt; '&gt;= 2.6.4'},
+  'ezamar'           =&gt; {:version =&gt; '&gt;= 2009.06'},
+  'haml'             =&gt; {:version =&gt; '~&gt; 2.0.9'},
+  'hpricot'          =&gt; {:version =&gt; '&gt;= 0.8.1'},
+  'json'             =&gt; {:version =&gt; '&gt;= 1.1.6'},
+  'liquid'           =&gt; {:version =&gt; '~&gt; 2.0.0'},
+  'localmemcache'    =&gt; {:version =&gt; '~&gt; 0.4.0'},
+  'memcache-client'  =&gt; {:version =&gt; '~&gt; 1.7.2', :lib =&gt; 'memcache'},
+  'nagoro'           =&gt; {:version =&gt; '&gt;= 2009.05'},
+  'rack-test'        =&gt; {:version =&gt; '&gt;= 0.3.0', :lib =&gt; 'rack/test'},
+  'sequel'           =&gt; {:version =&gt; '=  3.1.0'},
+  'tagz'             =&gt; {:version =&gt; '&gt;= 5.0.1'},
+  'tenjin'           =&gt; {:version =&gt; '~&gt; 0.6.1'},
+}
 
 GEMSPEC = Gem::Specification.new{|s|
   s.name         = 'ramaze'
@@ -40,25 +59,6 @@ GEMSPEC = Gem::Specification.new{|s|
   s.rubyforge_project = &quot;ramaze&quot;
   s.required_rubygems_version = '&gt;= 1.3.1'
 
-  s.add_dependency('innate', '= 2009.06.12')
-
-  # rip those out if they cause you trouble
-  s.add_development_dependency('Remarkably',      '~&gt; 0.5.2')
-  s.add_development_dependency('bacon',           '&gt;= 1.1.0')
-  s.add_development_dependency('erubis',          '&gt;= 2.6.4')
-  s.add_development_dependency('ezamar',          '&gt;= 2009.06')
-  s.add_development_dependency('haml',            '~&gt; 2.0.9')
-  s.add_development_dependency('hpricot',         '&gt;= 0.8.1')
-  s.add_development_dependency('json',            '&gt;= 1.1.6')
-  s.add_development_dependency('liquid',          '~&gt; 2.0.0')
-  s.add_development_dependency('localmemcache',   '~&gt; 0.4.0')
-  s.add_development_dependency('memcache-client', '~&gt; 1.7.2')
-  s.add_development_dependency('nagoro',          '&gt;= 2009.05')
-  s.add_development_dependency('rack-test',       '&gt;= 0.3.0')
-  s.add_development_dependency('sequel',          '=  3.1.0')
-  s.add_development_dependency('tagz',            '&gt;= 5.0.1')
-  s.add_development_dependency('tenjin',          '~&gt; 0.6.1')
-
   s.post_install_message = &lt;&lt;MESSAGE.strip
 ============================================================
 
@@ -70,6 +70,14 @@ You can now do create a new project:
 MESSAGE
 }
 
+DEPENDENCIES.each do |name, options|
+  GEMSPEC.add_dependency(name, options[:version])
+end
+
+DEVELOPMENT_DEPENDENCIES.each do |name, options|
+  GEMSPEC.add_development_dependency(name, options[:version])
+end
+
 Dir['tasks/*.rake'].each{|f| import(f) }
 
 task :default =&gt; [:bacon]</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -44,8 +44,10 @@ task :gem_setup do
       setup
     end
 
-    # first try to activate, install and try to activate again if activation
-    # fails the first time
+    # First try to activate.
+    # If activation fails, try to install and activate again.
+    # If the second activation also fails, try to require as it may just as
+    # well be in $LOAD_PATH.
     def setup_gem(name, options)
       version = [options[:version]].compact
       lib_name = options[:lib] || name
@@ -53,9 +55,10 @@ task :gem_setup do
       log &quot;activating #{name}&quot;
 
       Gem.activate(name, *version)
-    rescue LoadError
+    rescue Gem::LoadError
+      log &quot;activating #{name} failed, try to install&quot;
+
       install_gem(name, options)
-      Gem.activate(name, *version)
     end
 
     # tell rubygems to install a gem
@@ -63,9 +66,19 @@ task :gem_setup do
       installer = Gem::DependencyInstaller.new(options)
 
       temp_argv(options[:extconf]) do
-        log &quot;Installing #{name}&quot;
+        log &quot;installing #{name}&quot;
         installer.install(name, options[:version])
       end
+
+      Gem.activate(name, *version)
+
+      log &quot;install and final activation successful&quot;
+    rescue Gem::GemNotFoundException =&gt; ex
+      log &quot;installation failed: #{ex}, use normal require&quot;
+
+      require(options[:lib] || name)
+
+      log &quot;require successful, cannot verify version though&quot;
     end
 
     # prepare ARGV for rubygems installer</diff>
      <filename>tasks/gem_setup.rake</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,12 @@
 desc 'install all possible dependencies'
 task :setup =&gt; [:gem_setup] do
-  GemSetup.new :verbose =&gt; true do
-    setup_gemspec GEMSPEC
+  GemSetup.new :verbose =&gt; false do
+    DEPENDENCIES.each do |name, options|
+      gem(name, options)
+    end
+
+    DEVELOPMENT_DEPENDENCIES.each do |name, options|
+      gem(name, options)
+    end
   end
 end</diff>
      <filename>tasks/setup.rake</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>dd9d8381583466a9f7e6078bcaf7fb85138996ac</id>
    </parent>
  </parents>
  <author>
    <name>Michael Fellinger</name>
    <email>m.fellinger@gmail.com</email>
  </author>
  <url>http://github.com/manveru/ramaze/commit/1389dd8eb9fd5c476f09c411b9a881efae79c792</url>
  <id>1389dd8eb9fd5c476f09c411b9a881efae79c792</id>
  <committed-date>2009-07-02T02:28:12-07:00</committed-date>
  <authored-date>2009-07-02T02:28:12-07:00</authored-date>
  <message>Improve gem_setup task</message>
  <tree>cc5b66dde89662edbdfb182880c5f746e57ba8a4</tree>
  <committer>
    <name>Michael Fellinger</name>
    <email>m.fellinger@gmail.com</email>
  </committer>
</commit>
