From: Tom Cloyd Date: 2009-01-17T02:50:43+09:00 Subject: Re: RubyGem, find path of installed gem through ruby. Tom Cloyd wrote: > Tom Cloyd wrote: >> Aaron Smith wrote: >> >> Hey Tom, Thanks, that information is definitely what I'm looking for. >> How would I get that info from within a ruby script. Specifically the >> "GEM PATH" is what I would need. Is there a method to get that? >> >> or rather, the "INSTALLATION DIRECTORY." >> >> =========================== >> >> If you had any idea how paltry my knowledge of Ruby really is you >> would ask me such questions! But...I got us this far, so... >> >> I think I'd try a system call to "gem env", and put the output in a >> string, then locate "INSTALLATION DIRECTORY:" with StringScanner, and >> take everything after that, up to the EOL as the path you're after. >> Easy, actually. >> >> Only I'm momentarily stumped as to how to make the system call AND >> capture the output. Thomas (Pickaxe 2) says it can be done using >> backtics. I tried it in irb and got nothing. Still trying to figure >> it out. It'd be a good trick to know. >> >> t. >> > Bummer. In order to preserve my reputation, I managed to get irb a bit > hung up, so of course it didn't perform `gem env` as I expected. > Ungummed, as it were, it works fine. E.g.: > > irb(main):001:0> a=`gem env` > => "RubyGems Environment:\n - RUBYGEMS VERSION: 1.3.1\n - RUBY > VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]\n - > INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8\n - RUBY EXECUTABLE: > /usr/bin/ruby1.8\n - EXECUTABLE DIRECTORY: /usr/bin\n - RUBYGEMS > PLATFORMS:\n - ruby\n - x86-linux\n - GEM PATHS:\n - > /usr/lib/ruby/gems/1.8\n - /home/tomc/.gem/ruby/1.8\n - GEM > CONFIGURATION:\n - :update_sources=> true\n - :verbose => > true\n - :benchmark => false\n - :backtrace => false\n - > :bulk_threshold => 1000\n - REMOTE SOURCES:\n - > http://gems.rubyforge.org/\n" > irb(main):002:0> > > I leave it to you to get the code to have StringScanner find and > return the path. Somehow I keep thinking regular expressions might be > helpful here, but I dare not there. I think I hear the ice cracking > already. > > t. > Also, you might find something useful here: http://tech.natemurray.com/2007/03/ruby-shell-commands.html t. -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 << tc@tomcloyd.com >> (email) << TomCloyd.com >> (website) << sleightmind.wordpress.com >> (mental health weblog) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~