What does $: point to in a ruby (shell) script?

I have a script with the first line as follows:

$:.unshift(File.dirname(__FILE__) + '/../lib')

This must mean something nasty to Google, because I can't seem to get anything useful if I include it in a search string, even quoted. Ditto stackoverflow and rubytips.

Having this line at the beginning of this script seems to treat the require <gem name> statements that follow it differently than a normal require would, or at least I am not getting the same errors as I do when I require the gems without this line.

What does it do?

Thanks,

Walter

My Google-fu is strong today: http://blog.purifyapp.com/2010/01/04/cryptic-ruby-global-variables-and-their-meanings/

Yeah, Google doesn’t care for punctuation of any kind really.

$. is used to denote the load path for Ruby libraries, so the line that you have there is to prepend the lib/ directory, which is a peer to the directory your script is in, to the front of the load path.

FYI, it’s aliased as $LOAD_PATH in case you want to change it for better clarity.

Thanks very much to you and Chris!

Walter