[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]