require した時のパッケージが実体どこにあるか知りたい時があります。
たとえば、ライブラリの本体パスを知ることでmanual やサンプルにアクセすることが可能だからです。
Gemのファイルの場所を調べよう。
取得方法
Gem::Specification.find_by_path( "gem 名" ).full_gem_path
実行サンプル
(%w/bitly airplay flickr git oauth2 sinatra/).map{|e| path = Gem::Specification.find_by_path( e ).full_gem_path puts "#{e.ljust(10)} : #{path}" }
takuya@rena:~/Desktop$ ruby test.rb bitly : /Users/takuya/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/bitly-0.10.1 airplay : /Users/takuya/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/airplay-1.0.2 flickr : /Users/takuya/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/flickr-1.0.2 git : /Users/takuya/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/git-1.2.6 oauth2 : /Users/takuya/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/oauth2-0.9.3 sinatra : /Users/takuya/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5
ただし
gem パッケージの実態に限ります。標準添付ライブラリと組み込みオブジェクトは gem 管理対象外なのでGem::specification で取ることは出来ない。
ドキュメントが欲しいなら
ri Mechanize
でも可能です。
参考資料
http://docs.ruby-lang.org/ja/2.1.0/class/Gem=3a=3aSpecification.html#I_FULL_GEM_PATH