diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mongrel.rb | 2 | ||||
-rw-r--r-- | lib/mongrel/gems.rb | 23 |
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 |