class Sorbet::Private::GemLoader
def self.my_require(gem)
This is so that the autoloader doesn't treat these as manditory requires
def self.my_require(gem) require gem # rubocop:disable PrisonGuard/NoDynamicRequire end
def self.require_all_gems
def self.require_all_gems require 'bundler/setup' # Do not load gems in Gemfile where require is false deps = Bundler.load.dependencies.reject { |dep| dep.autorequire && dep.autorequire.empty? } specs = deps.flat_map do |dep| begin dep.to_specs rescue Gem::MissingSpecError [] end end.to_set specs.sort_by(&:name).each do |gemspec| begin require_gem(gemspec.name) rescue LoadError end end Bundler.require end
def self.require_gem(gem)
def self.require_gem(gem) if gem == NO_GEM require_all_gems return end loader = GEM_LOADER[gem] if loader begin loader.call rescue NameError => e puts "NameError: #{e}" end else require gem # rubocop:disable PrisonGuard/NoDynamicRequire end end