Requiring libraries in command line scripts?


#1

I have a simple script:

#!/usr/bin/ruby

require ‘rubilicious’
#require ‘/usr/lib/ruby/gems/1.8/gems/Rubilicious-0.1.5/rubilicious.rb’

r = Rubilicious.new(‘joe’, ‘12345’)

r.add(‘http://yahoo.com’, ‘yahoo’)

When run, I get:
`require’: no such file to load – rubilicious (LoadError)

But if I comment out the first require, and uncomment the second, it
works. Is there something I can do so that command line scripts don’t
have to specify the full path when including library files?

Thanks,
Joe


#2

Joe wrote:

Don’t you need to require ‘rubygems’ before requiring a gem?


#3

Timothy H. wrote:

Joe wrote:

Don’t you need to require ‘rubygems’ before requiring a gem?

Ah, yep, you’re right! I thought I had gotten such scripts to work
before.

Thanks,
Joe


#4

This is interesting.

How does this work? Does the rubygems library replace the “require”
keyword with an implementation that is gem savvy and knows where to look
for them? Does gems always install things in this one standard “place”?

thanks,
jp

Timothy H. wrote:

Joe wrote:

Don’t you need to require ‘rubygems’ before requiring a gem?


#5

On Jun 2, 2006, at 3:01, Jeff P. wrote:

This is interesting.

How does this work? Does the rubygems library replace the “require”
keyword with an implementation that is gem savvy and knows where to
look
for them? Does gems always install things in this one standard
“place”?

You pretty much got it in one.

(though technically, ‘require’ is a method, not a keyword)

matthew smillie.