Kudos! I had worked on something similar although I didn't use the
block binding which is a better way to go. I alias_method_chained
require and was using the caller stack to figure out the correct file
path. But I kept running into the problem of having to require it
everywhere... Like I would be in a test file and you'd have to have,

require 'elreq' # name of mine
require '../../test_helper'

So I largely gave up b/c while it was cleaner, adding the extra
require everywhere seemed to negate the benefits. If only it was
globally available - like in core. :)

A suggestion, if you are concerned with portability you may want to
use File.join to concatenate the end result together. Also, you
probably want to stick it in the Kernel module, but that may just be a
design pet peeve of mine.

Glad something like this is out there.

Cheers,
Kevin