about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
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