Module: Puma::Gems

Defined in:
lib/puma/gems.rb

Class Method Summary collapse

Class Method Details

.optional(library, version = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/puma/gems.rb', line 4

def optional(library, version = nil)
  begin
    Kernel.require library
  rescue LoadError, RuntimeError => e
    begin 
      # ActiveSupport breaks 'require' by making it always return a true value
      Kernel.require 'rubygems'
      version ? gem(library, version) : gem(library)
      retry
    rescue Gem::LoadError, LoadError, RuntimeError
    end
  end  
end