From: Zach Dennis Date: 2005-02-02T02:07:36+09:00 Subject: Re: Finding the location of libraries Claus Spitzer wrote: > Greetings fellow rubyists! > I am looking for a way of checking which location a library I use is > at. Let me demonstrate with an example: > > Let's assume that I have a hypotetical programa program, foo.rb . That > program requires a library, as in > require 'bar' > > The problem is, I have 4 different versions of bar.rb and one bar.so, > and would like to know which one I am using. How would I go around > figuring this out? If you know what you are looking for you can search the $: global variable which houses the paths that ruby looks in for files. require "time" $:.each do |path| puts "#{path}/time.rb" if File.exist?( "#{path}/time.rb" ) end here i cheated because I knew I was looking for time. A better solution is: def require( what ) super $:.each do |path| puts "#{path}/#{what}.rb" if File.exist?( "#{path}/time.rb" ) end end require "time" but this will give you output for every required file. Example when I required "time" I get the following output: ---------- Capture Output ---------- > "c:\ruby\bin\ruby.exe" loadtest.rb -d c:/ruby/lib/ruby/1.8/rational.rb c:/ruby/lib/ruby/1.8/date/format.rb c:/ruby/lib/ruby/1.8/parsedate.rb c:/ruby/lib/ruby/1.8/time.rb HTH, Zach