Strange require behaviour

Why does gem ‘bson_ext’ work, but require ‘bson_ext’ does not. Ruby
1.9.3. Same on Windows or Linux.

irb(main):001:0> require ‘bson_ext’
LoadError: cannot load such file – bson_ext
require' from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire’
from (irb):1
from c:/Ruby193/bin/irb:12:in `’
irb(main):002:0> gem ‘bson_ext’
=> true


I found this about the “gem” command within IRB:

gem(gem_name, *version_requirements)

 Adds a Ruby Gem to the $LOAD_PATH. Before a Gem is loaded, its
 required Gems are loaded. If the version information is omitted,
 the highest version Gem of the supplied name is loaded. If a Gem
 is not found that meets the version requirement and/or a required
 Gem is not found, a Gem::LoadError is raised. More information on
 version requirements can be found in the Gem::Version

 The gem directive should be executed before any require statements
 (otherwise rubygems might select a conflicting library version).

 You can define the environment variable GEM_SKIP as a way to not
 load specified gems. you might do this to test out changes that
 haven't been intsalled yet. Example:

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

 gem:                 [String or Gem::Dependency] The gem name or
                      dependency instance.

 version_requirement: [default=">= 0.0.0"] The version requirement.

 return:              [Boolean] true if the Gem is loaded,
                      otherwise false.

 raises:              [Gem::LoadError] if Gem cannot be found, is
                      listed in GEM_SKIP, or version requirement
                      not met.

I’d guess that you haven’t installed the gem correctly, so it isn’t in
the right location for “require” to work.

That certainly looks like my problem. Since I have tried reloading Ruby
Gems through RVM twice (and since RVM is supposed to be the most
reliable way of installing Ruby) how do I fix this problem?