Skip to content
Sho Hashimoto edited this page Mar 31, 2014 · 1 revision

リファレンスマニュアルにおける require の書き方

ルールは以下のふたつです。

  • 同じ名前のライブラリのみを require には書きます。たとえば、kconv ライブラリは nkf ライブラリを require していますが、kconv.rd に「require nkf」と書いてはいけません。もうひとつ例を挙げると、webrick.rd の require に書いて良いライブラリは webrick/* だけです。
  • ライブラリとして使われることのないファイルは、require には書きません。たとえば、optparse ライブラリはoptparse/version を require していますが、これは内部で使われているだけのファイルなので、optparse.rd に書いてはいけません。

require の目的

ひとつめ。

ユーザが、あるライブラリを require したときに使えるクラスの一覧を出す ためです。例えば require 'tk' と書いたら tk ライブラリの一連のクラス はすべて使えるようになるわけですが、src/tk.rd 自体にはその一部しか書 いてありません。つまり、tk 以下のライブラリのページを全部見ないと使える クラスがわからないわけです。それでは不便なので、require を書いといて、 自動的にクラス一覧を計算できるようにしよう、ということです。

ふたつめ。

あるクラスを使いたいとき、どのライブラリを require すればいいか示すためです。 例えば Test::Unit::TestCase が使いたいと思ったとき、所属するライブラリは test/unit/testcase だけれども、実際には test/unit を require するのが 普通です。その「普通 require するライブラリ」を計算するためには require を書いておく必要があります。