require_relative はなぜあまり使われない?
ruby で gem の開発をしているとします。 gem の開発なので、以下のようなスタンダードなフォルダ構成になっているとします。
% tree
.
├── Rakefile
├── bin
│ └── hola
├── hola.gemspec
├── lib
│ ├── hola
│ │ └── translator.rb
│ └── hola.rb
└── test
└── test_hola.rb
この際、 lib/hola.rb
から lib/hola/translator.rb
を require するときに、 require_relative
を利用しない理由などありますか?
とくに、 lib
内部の相対参照であるならば:
- すべて自分が管理するコードなので、フォルダ構成もコントロールできる
- 同一 LOAD_PATH エントリー内部の話なので、
bin/
やtest/
といった、プロジェクトとしてのフォルダ構成の変更の影響を受けることはあまり考えにくい
ことに加え、特に、 require_relative
することによって、 $LOAD_PATH
から意図しないスクリプトが読み込まれる危険を避けることができます。なので、基本的に require_relative
するべきだと思っています。
しかし一方で、 require_relative
を利用するライブラリや、 require_relative
の利用を推奨するような記事もあまり見掛けないので、自分の認識が違っているのかもりえない、と若干思ったりもします。
質問
lib 内部など、同一LOAD_PATH
エントリー上の、自分のファイルをロードするにあたり、 require_relative
より require
を利用するべき理由などあったりなどしますでしょうか。