Module Kernel
In: lib/rubygems/custom_require.rb
lib/rubygems.rb

Methods

gem  

External Aliases

require -> gem_original_require
  The Kernel#require from before RubyGems was loaded.

Private Instance methods

Use Kernel#gem to activate a specific version of gem_name.

requirements is a list of version requirements that the specified gem must match, most commonly "= example.version.number". See Gem::Requirement for how to specify a version requirement.

If you will be activating the latest version of a gem, there is no need to call Kernel#gem, Kernel#require will do the right thing for you.

Kernel#gem returns true if the gem was activated, otherwise false. If the gem could not be found, didn‘t match the version requirements, or a different version was already activated, an exception will be raised.

Kernel#gem should be called before any require statements (otherwise RubyGems may load a conflicting library version).

In older RubyGems versions, the environment variable GEM_SKIP could be used to skip activation of specified gems, for example to test out changes that haven‘t been installed yet. Now RubyGems defers to -I and the RUBYLIB environment variable to skip activation of a gem.

Example:

  GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb

[Source]

      # File lib/rubygems.rb, line 1228
1228:   def gem(gem_name, *requirements) # :doc:
1229:     skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
1230:     raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
1231:     spec = Gem::Dependency.new(gem_name, *requirements).to_spec
1232:     spec.activate if spec
1233:   end

[Validate]