ruby-reference-manual:3001
From: 原 悠 <yhara@k...>
Date: Sun, 18 Mar 2012 00:24:03 +0900
Subject: [ruby-reference-manual:3001] サブライブラリについて
yharaです。 bitclustのソースを読んでいて、「サブライブラリ」という概念が あることを知りました。過去ログによるとsheepmanさんが実装されたようです。 http://www.fdiary.net/ml/ruby-reference-manual/msg/587 この機能が現在どのように使われているのか知りたいと思い、graphvizで図を描いて みました。 http://route477.net/files/ruby_sublibs.png (大きいので注意) https://gist.github.com/1869039 これを見ると、psych webrick rubygems tk rdoc rake xmlrpcあたりが たくさんのサブライブラリを持っていることが分かります。 ところで、optparseは複数の.rbファイルから構成されていますが、それらのうちの 一部だけ(optparse/date, optparse/time, optparse/uri, optparse/shellwords)が サブライブラリとして指定されています。これらのファイルはデフォルトでは 読み込まれず、 require 'optparse' require 'optparse/uri' として追加で明示的に読み込む必要があるからだと思います。 このように、独立性の高いものだけをサブライブラリとした方がすっきりするのでは ないでしょうか。 「独立性が高い」とは以下のような意味です。 * デフォルトではrequireされず、追加でrequireすることで本体に対する 拡張機能を提供するようなもの (例:irb/completion) * 単体でrequireすることでサブコンポーネントのみを使用することができるもの (例:cgi/util) このルールに従うと、例えばwebrickのサブライブラリはwebrick/httpsだけになります。 この方針でよければ、パッチをいくつか書いてみようと思います。 -- 原 悠 -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/