2011-09-22 19:24:43 -07:00
|
|
|
module Puma
|
2007-11-01 06:14:56 +00:00
|
|
|
module Gems
|
|
|
|
class << self
|
2011-09-23 23:39:35 -07:00
|
|
|
def optional(library, version = nil)
|
2007-11-01 06:14:56 +00:00
|
|
|
begin
|
2007-11-12 21:13:03 +00:00
|
|
|
Kernel.require library
|
2007-11-01 06:14:56 +00:00
|
|
|
rescue LoadError, RuntimeError => e
|
2007-11-12 21:13:03 +00:00
|
|
|
begin
|
2007-11-01 06:14:56 +00:00
|
|
|
# ActiveSupport breaks 'require' by making it always return a true value
|
2007-12-15 04:52:01 +00:00
|
|
|
Kernel.require 'rubygems'
|
2007-11-12 21:13:03 +00:00
|
|
|
version ? gem(library, version) : gem(library)
|
|
|
|
retry
|
|
|
|
rescue Gem::LoadError, LoadError, RuntimeError
|
2007-11-01 06:14:56 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
2011-09-22 19:24:43 -07:00
|
|
|
end
|