RubyGems does some magic with
require so you can load gems as though they were regular Ruby libraries. There’s some weirdness, though:
irb(main):001:0> require 'syntaxi' => false irb(main):002:0> Syntaxi => Syntaxi irb(main):003:0> Gem::RubyGemsVersion => "0.8.11"
require returned false even though it actually loaded the gem. Of course, I didn’t realize it was loaded, na´vely believing
require knew what it was talking about.
require_gem "syntaxi" worked, why not this? After some mucking around in
rubygems/custom_require.rb, I decided it was at least partly working:
Gem::GemPathSearcher#find worked, as did
Gem.activate. The only thing left in the overridden
require__, which is the original
That’s when I found an email on the rubygems-developers list explaining things. Everything’s fine, ignore that false, move along.
previously: Strip Whitespace