Require and symbolic links

Hi, thanks to the Shebang my /usr/local/somewhere/over/the/rainbow.rb
get ruby interpretor launched automagically.

BUT, because I need it very often I’ve created a /usr/local/bin/rainbow
symlink to it.

Now, the require in rainbow.rb no more finds the files in
/usr/local/somewhere/over/the/lib directory. So, I used absolute path
and it’s fine, but francky I don’t like absolute paths because anybody
should be able to put and use rainbow.rb on any directory

How can I do to have both this nice symlink without losing relative
require ?

2008/11/9 Zouplaz [email protected]:

How can I do to have both this nice symlink without losing relative require

You could try to construct the “real” path with the help of
File.symlink? and File.readlink.

Personally, I wouldn’t bother. There are a couple of install options
that, depending on the situation, make much more sense and
are less brittle:

  1. If you want to make install convenient for other Ruby developers,
    make a gem. (And if they don’t like a gem they’ll know how to unpack
    it and scatter the files all over their harddrives anyway they please.)

  2. If you want to distribute to Linux/Unix users in general, make
    a deb or RPM or whatever package.

  3. If you want to give the program to people who have little
    computer knowledge, try RubyScript2Exe
    (http://www.erikveen.dds.nl/rubyscript2exe/). That packs
    everything into a single clickable executable.

Stefan

le 09/11/2008 21:47, Stefan L. nous a dit:

a deb or RPM or whatever package.

  1. If you want to give the program to people who have little
    computer knowledge, try RubyScript2Exe
    (http://www.erikveen.dds.nl/rubyscript2exe/). That packs
    everything into a single clickable executable.

Thanks, I’ll give File.readlink a look - You’re right about using an
adequate packaging solution, except that the final user is me :wink: This
is for a program that I often upgrade and which is runned on 2 machines
having different directory structures - I would like to avoid the
tedious task of modifying the source after every upgrade

On Mon, Nov 10, 2008 at 6:47 AM, Zouplaz [email protected] wrote:

Thanks, I’ll give File.readlink a look - You’re right about using an
adequate packaging solution, except that the final user is me :wink: This is
for a program that I often upgrade and which is runned on 2 machines having
different directory structures - I would like to avoid the tedious task of
modifying the source after every upgrade

There are projects like hoe that automate the creation of a gem for
you - you could combine that with a rake task that installs the newly
created gem on both your machines every time you make one.

martin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs