about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-11-01 06:14:56 +0000
committerevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-11-01 06:14:56 +0000
commite7e39dd8868bed091431fe7d9d87a9dd460e7169 (patch)
treea684a43478e25922d07533a1c30f18430d84f2b8 /lib
parent6329da413e94425565b35160dcf89dbea0c4d9e7 (diff)
downloadunicorn-e7e39dd8868bed091431fe7d9d87a9dd460e7169.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@865 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'lib')
-rw-r--r--lib/mongrel.rb2
-rw-r--r--lib/mongrel/gems.rb23
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index c5d41fa..e0dcab1 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
@@ -348,4 +348,4 @@ end
 # in regular Mongrel.
 
 $LOAD_PATH.unshift 'projects/mongrel_experimental/lib/'
-Mongrel::Gems.require 'mongrel_experimental', '=1.1'
+Mongrel::Gems.require 'mongrel_experimental', ">=#{Mongrel::Const::MONGREL_VERSION}"
diff --git a/lib/mongrel/gems.rb b/lib/mongrel/gems.rb
new file mode 100644
index 0000000..4b34552
--- /dev/null
+++ b/lib/mongrel/gems.rb
@@ -0,0 +1,23 @@
+module Mongrel
+  module Gems
+    class << self
+    
+      alias :original_require :require
+    
+      def require(library, version = nil)
+        begin
+          original_require library
+        rescue LoadError, RuntimeError => e
+          unless respond_to? 'gem'
+            # ActiveSupport breaks 'require' by making it always return a true value
+            require 'rubygems'
+            gem library, version if version
+            retry
+          end
+          # Fail without reraising
+        end  
+      end
+      
+    end    
+  end
+end \ No newline at end of file