石井です
load や require のロードパスに、、load や require を実行したスクリプトの
存在するディレクトリを自動的に含めるというというのは難しいでしょうか?
いくつかスクリプトを作ったら共通のクラスなり関数があったのでそれらを
一つのファイルにまとめて、複数のファイルから load するようにしたいと
します。
たとえば
sub.rb に共通のクラスを書き込む
他の スクリプト a.rb, b.rb, c.rb から
load "sub.rb"
で読み込む。
こうすると、sub.rb がカレントディレクトリにある場合は問題ないのですが
それ以外の場合はこまります。
(自分がシステム管理者ではないので、標準のロードパスに書き込む権限は
もっていない、という状況を仮定します)
で、どこに持っていってもいいようにしようと考え、
sub.rb を a.rb, b.rb, c.rb と同じディレクトリに置いた上で
他の スクリプト a.rb, b.rb, c.rb から
$LOAD_PATH << File.dirname($0)
load "sub.rb"
で読み込む。
とすれば解決しそうです。(未確認ですが、きっと動くと期待してます。^^;)
でも、
$LOAD_PATH << File.dirname($0)
の行は、$0 が書き換えられる前に実行しなければいけないし、毎度これを
書くのもちょっと面倒臭いです。
いっそ、スクリプト起動時に ruby が、これを実行してくれないかなぁと
おもったわけです。
いかがでしょうか?
--
┌─石井 毅────────────────────┐
└──isii / harmony.co.jp──isii@mirage.linc.or.jp─┘