Look at:
$"                (historic variable)
$LOADED_FEATURES  (English equivalent)

It's not exactly what you want, but you could combine those with:
$:
$LOAD_PATH

To find out where each one came from.  (Assuming, of course, that the  
LOAD_PATH hasn't been altered since the require happened.)

-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com

On Jan 4, 2009, at 11:38 PM, timr wrote:

> Let's say I am in irb and I execute
>
>>> require 'base64.rb"
> =>true
>
> and then I want to know the path to the base64.rb file,
> are the paths to previously required files stored in a global
> variable?
>
> I wan't to do something like:
>>> $required_files
> =>['/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
> ruby/1.8/base64.rb']
>
> Anyone?
> Thanks,
> Tim
>
> P.S. I know that I can do shift+cmd+D in text mate and open the file,
> which obviously requires the path--but this script uses
> TM_SUPPORT_PATH--and it seems like something that could be more
> easilly accessed directly from RUBY. At any rate, I would rather be
> able to do it in irb. Thanks.
>
> ################From 'open require' command of the RUBY bundle of
> TextMate######################
> #!/usr/bin/env ruby
>
> require "#{ENV['TM_SUPPORT_PATH']}/lib/ui.rb"
> require "#{ENV['TM_SUPPORT_PATH']}/lib/textmate.rb"
>
> REQUIRE_RE = /^\s*(?:require|load)\s*(['"])([^'"#]+?)(?:\.rb)?\1[ \t]*
> $/
>
> gems_installed = begin
>                   require 'rubygems'
>                   true
>                 rescue LoadError
>                   false
>                 end
>
> requires = if ENV['TM_CURRENT_LINE'].to_s =~ REQUIRE_RE
>             ["#{$2}.rb"]
>           else
>             $stdin.read.scan(REQUIRE_RE).map { |_, path| "#
> {path}.rb" }
>           end
> abort 'No includes found.' if requires.empty?
>
> file = if requires.size > 1
>         choice = TextMate::UI.menu(requires) or exit
>         requires[choice]
>       else
>         requires.pop
>       end
> dir  = $LOAD_PATH.find { |dir| File.exist? File.join(dir, file) }
> if not dir and gems_installed and gem_spec =
> Gem::GemPathSearcher.new.find(file)
>  dir = File.join(gem_spec.full_gem_path, gem_spec.require_path)
> end
>
> if file and dir
>  dir.sub!(%r{\A\.(?=/|\z)}, ENV['TM_DIRECTORY']) if ENV
> ['TM_DIRECTORY']
>  file_path = File.join(dir, file)
>  puts file_path
>  TextMate.go_to :file => file_path
>  exit
> else
>  puts "File not found: #{file}"
> end
>