From: timr Date: 2009-01-05T13:38:56+09:00 Subject: is there a way to get the paths to all previously required files? 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