In case you want to require a gem, that is not in the Gemfile of you bundle and therefore not in your loadpath, you need to add the path manually and require the gem afterwards.
Expected error
Requiring a gem, that is not in the Gemfile
or .gemspec
, will cause an LoadError
exception:
require 'example_gem' => LoadError: cannot load such file -- example_gem
Adding a gem to the loadpath temporary
- You need to install the
gem
gem install 'example_gem'
- Then you need to require the path where the gem was installed to:
$: << '/home/xxx/.rvm/rubies/ruby-x.x.x/lib/ruby/x.x.x/gems/example_gem-x.x.x'
$: << '/home/xxx/.rvm/rubies/ruby-x.x.x/lib/ruby/x.x.x/gems/example_gem-x.x.x/lib'
Note: To find out the path quickly just look at $:
to get the base path of your ruby dir and then append the gem with version of the output of gem install
. The Ruby version can be found out with ruby -v
.
- Then require the gem
require 'example_gem => true
Outline
Usually the method above is just needed e.g. for debugging. For all other cases you should add the gem to Gemfile
or .gemspec
. There also exists a development group in the Gemfile
or .gemspec
, in case you do not want to have a development gem on production servers.