組み込みクラス・モジュール、添付ライブラリ一覧

 Rubyには、初期状態で使えるクラス・モジュールが多く用意されています。また、よく使われるライブラリはRubyインタプリタに標準添付されています。別途、別サイトなどから入手する必要はありません。

組み込みクラス

 すべてのクラスは、Objectクラスの直接的あるいは間接的なサブクラスです。組み込みクラスには、次のものがあります。

   クラス名                           内容
-----------------      -----------------------------------------------------
Object
    Array              配列
    Binding            ローカル変数とselfなどの情報を保持するためのクラス
    Continuation       直前の状態(ローカル変数など)を記憶するためのクラス
    Data               Objectからnew()をundefしたクラス。拡張ライブラリを書くときに用いる。
    Dir                ディレクトリ
    Exception          例外
    FalseClass         偽を表すfalseのクラス
    File::Stat         ファイルの情報(更新日時など)を格納するためのクラス
    Hash               ハッシュ
    IO                 入出力
        File           ファイル
    MatchData          正規表現のマッチに関するクラス
    Method             メソッド
    Module             モジュール
        Class          クラス
    NilClass           nilのクラス
    Numeric            数値
        Float          浮動小数点数
        Integer        整数
            Bignum     絶対値が大きな整数
            Fixnum     機械で扱える整数
    Proc               イテレータブロックをオブジェクト化するためのクラス
    Process::Status    プロセスの状態
    Range              範囲
    Regexp             正規表現
    String             文字列
    Struct             構造体
    Symbol             シンボル
    Thread             スレッド
    ThreadGroup        複数のスレッドをまとめて操作するためのクラス
    Time               時刻
    TrueClass          trueのクラス
    UnboundMethod      レシーバを持たないメソッド

 例外クラスも、ほかのクラスと同様、通常のクラスです。例外クラスはExceptionクラスのサブクラスです。組み込み例外クラスには、次のものがあります。

   クラス名                  
------------------------------   
Exception
    NoMemoryError
    ScriptError
        LoadError
        NotImplementedError
        SyntaxError
    SignalException
        Interrupt
    StandardError
        ArgumentError
        IndexError
        IOError
            EOFError
        LocalJumpError
        NameError
            NoMethodError
        RangeError
            FloatDomainError
        RegexpError
        RuntimeError
        SecurityError
        SystemCallError
            Errno::EEXISTなどエラー別のクラス
        SystemStackError
        ThreadError
        TypeError
        ZeroDivisionError
    SystemExit

組み込みモジュール

 モジュールは、インスタンスを直接生成できないクラスです。モジュールは、別のクラスにincludeすることでそのクラスに機能を追加するためのものと、関数的な機能を集めたものがあります。前者はComparable、Enumerableモジュールなどです。後者はFileTestモジュールなどで、クラスメソッドで機能を呼び出します。

 組み込みモジュールには次のものがあります。

モジュール名内容
Comparable比較演算を行うメソッドを提供する。includeするクラスは、<=>メソッドを持たなければならない。
Enumerable繰り返しに関するメソッドを提供する。includeするクラスは、eachメソッドを持たなければならない。
File::ConstantsFileクラスに係る定数を集めたモジュール
FileTestファイルの各種検査のためのクラスメソッドを提供するモジュール
GCRubyインタプリタのガベージコレクタを制御するためのモジュール
Kernelどこからでも使えるメソッドを提供する。Kernelのメソッドはレシーバの指定が不要なので、関数に見える
MarshalRubyオブジェクトを直列化する機能を提供する。ファイルなどにオブジェクトを一時的に保存する場合に用いる。
Math数学の関数を集めたモジュール
ObjectSpaceオブジェクトが保管される場所(オブジェクト空間)を操作するためのモジュール
Precision精度を持つ具象数値クラスのためのモジュール。includeして使う。
Processプロセスに対する操作を提供する
Signalシグナルに関する操作を提供する

添付ライブラリ

 基本的な、よく使われるだろうライブラリは、Rubyインタプリタに標準添付されています。ライブラリのファイルは、require関数で取り込んで使用します。require関数では、ファイルの拡張子を指定する必要はありません(してもよい)。

 一つのライブラリで複数のクラスやモジュールが定義されていることがあります。ここでは、どのようなライブラリがあるか、について列挙します。ライブラリに含まれるクラスや、その使用法については、リファレンスマニュアルなどを参照してください。

【注】このページはRuby 1.8.0リリース前に書かれたため、リリース直前に猛烈な勢いで追加されたライブラリを網羅できていません。

ファイル名分類内容非推奨
base64.rb テキスト Base64 (RFC 2045) を扱う
benchmark.rb 開発用 実行時間の計測と報告
bigdecimal-rational.rb 数学 BigDecimal(可変長浮動小数点数)とRational(有理数)との相互変換
bigdecimal.so 数学 可変長浮動小数点演算
cgi-lib.rb ネットワーク (非推奨)-> cgi.rb
cgi.rb ネットワーク CGIライブラリ
cgi/session.rb ネットワーク CGIセッション管理
complex.rb 数学 複素数
csv.rb CSV(コンマ区切り形式)データを扱う
curses.so UI 端末操作ライブラリcursesのインターフェイス
date.rb 日付・時刻 日付クラス
date2.rb 日付・時刻 (非推奨)-> date.rb
dbm.so データ保管 ndbmをハッシュのように使う
debug.rb 開発用 Rubyスクリプト・デバッガ
delegate.rb デザインパターン メソッドの委譲
digest/md5.so テキスト MD5ハッシュ関数
digest/rmd160.so テキスト RIPEMD-160ハッシュ関数
digest/sha1.so テキスト SHA-1ハッシュ関数
digest/sha2.so テキスト SHA-256/384/512ハッシュ関数
dl/import.rb その他 共有オブジェクト(UNIX)またはDLL(Windows)を直接呼び出す
dl/win32.rb Windows Win32API互換インターフェイス
drb.rb 分散Ruby(dRuby)
e2mmap.rb その他 例外クラスにエラーメッセージを関連付ける
English.rb その他 特殊変数$!などに英語の別名($ERROR_INFOなど)を付ける
Env.rb その他 (非推奨)-> importenv.rb
erb.rb テキスト 埋め込みRuby
eregex.rb テキスト 二つの正規表現によるandまたはorの機能
etc.so UNIX /etc/passwdファイルなどを操作する
expect.rb 外部コマンド操作 対話プログラムをRubyスクリプトから制御する
fcntl.so ファイル操作 IO#fcntl()で使用する定数群
fileutils.rb ファイル操作 ファイル操作ユーティリティ
finalize.rb その他 オブジェクトがGCされるときに依存オブジェクトにメッセージを送る
find.rb ファイル操作 ファイル探索
forwardable.rb デザインパターン クラスに対してメソッドの委譲機能を定義する
ftools.rb ファイル操作 (非推奨)-> fileutils.rb
gdbm.so データ保管 gdbm (GNU dbm) をハッシュのように使う
getoptlong.rb UI コマンドラインオプションの解析。GNU getopt_long互換。オプションに別名を定義できる。
getopts.rb UI コマンドラインオプションの解析。$OPT_xxxに結果を格納する。
gserver.rb 汎用サーバー
iconv.so テキスト 文字コード変換。日本文字に限ればnkf.soが良い。
importenv.rb その他 環境変数をRubyグローバル変数で操作
ipaddr.rb ネットワーク IPアドレスの操作。IPv6対応。
irb.rb UI Rubyの対話型インターフェイス
jacobian.rb 数学 ヤコビ行列(Jacobian matrix)
jcode.rb テキスト Stringクラスを日本語対応に拡張する。副作用が大きいので、通常は使うべきではない。
kconv.rb テキスト 日本語EUC、シフトJIS、ISO-2022-JPの相互変換。nkfのラッパー。通常はnkfを直接使う。
ludcmp.rb 数学 行列のLU分解など
mailread.rb テキスト メール形式のデータを読み込む
mathn.rb 数学 数学用の補助メソッド群
matrix.rb 数学 行列
md5.rb テキスト (非推奨)-> digest/md5.so
mkmf.rb 開発用 拡張ライブラリ作成用ツール
monitor.rb スレッド スレッド間同期のためのモニタ機能を提供する。Javaのsynchronizedに似た機能。
mutex_m.rb スレッド オブジェクトにスレッド間同期のためのlock/unlock機能を付加するmix-in。プロセス間の同期機能は提供しない。
net/ftp.rb ネットワーク FTPクライアント
net/http.rb ネットワーク HTTP/1.1クライアント
net/imap.rb ネットワーク IMAP4rev1クライアント
net/pop.rb ネットワーク POP3クライアント
net/smtp.rb ネットワーク SMTPクライアント
net/telnet.rb ネットワーク Telnetクライアント
newton.rb 数学 ニュートン法によって非線形方程式を解く
nkf.so テキスト 日本語EUC、シフトJIS、ISO-2022-JPの相互変換
observer.rb デザインパターン ObserverパターンのRubyによる実装
open-uri.rb ネットワーク HTTP・FTP資源への容易なアクセス
open3.rb 外部コマンド操作 外部コマンドを起動し、入力・出力・エラーのIOを得る
openssl.rb OpenSSLサポート
optparse.rb UI コマンドラインオプションの解析。柔軟だが、その分複雑。
ostruct.rb その他 属性をオブジェクト生成後に加えられる構造体
parsearg.rb UI コマンドラインオプションの解析。getopts.rbのラッパー
parsedate.rb 日付・時刻 日付フォーマットの解析
pathname.rb パス名を扱う
ping.rb ネットワーク ホストに対するパケット到達の検証
pp.rb その他 関数p()の読みやすい版
prettyprint.rb その他 pretty printingアルゴリズム
profile.rb 開発用 (非推奨)-> profiler.rb
profiler.rb 開発用 プロファイラ
pstore.rb データ保管 オブジェクト永続化
pty.so 外部コマンド操作 仮想端末(pseudo-tty)で外部コマンドを実行する
racc/parser.rb 開発用 Ruby版yacc(パーサー生成器)
rational.rb 数学 有理数
rbconfig.rb 開発用 Rubyインタプリタの設定情報
readbytes.rb テキスト IOからの読み込み状況によって例外を発生させるIO#readbytes()を追加する
readline.so UI GNU Readlineインターフェイス
resolv-replace.rb ネットワーク Socket関連クラスで、ホスト名解決にresolv.rbを使うようメソッドを置き換える
resolv.rb ネットワーク Ruby版ホスト名解決(リゾルバ)
rexml/rexml.rb XMLパーサー
rubyunit.rb 開発用 (非推奨)-> text/unit.rb
sdbm.so データ保管 外部ライブラリに依存しないDBM。キーや値に使用できる長さに制限あり。
set.rb 数学 有限集合。重複のないオブジェクトの順序付けられていない集まり。
sha1.rb テキスト (非推奨)-> digest/sha1.so
shell.rb 外部コマンド操作 Rubyスクリプトからシェルコマンドに似た方法で外部コマンドを呼び出す
shellwords.rb テキスト テキストをUNIXシェル方式で単語に分割する
singleton.rb デザインパターン SingletonパターンのRuby実装
socket.so ネットワーク IP/UNIXソケット
stringio.so テキスト 文字列にIOクラスのインターフェイスを付加
strscan.so テキスト 簡易文字列スキャナ
syck.so テキスト YAMLを高速に読み込む
sync.rb スレッド 再入可能なスレッド間reader/writerロック機能を提供する。
syslog.so UNIX UNIX syslogを扱う
tcltk.rb UI Tcl/Tkの高水準インターフェイス。tcltklib.soのラッパー
tcltklib.so UI Tcl/Tkの低水準インターフェイス
tempfile.rb ファイル操作 一時ファイル生成
test/unit.rb 開発用 ユニットテスト
thread.rb スレッド スレッドに関するユーティリティ群
thwait.rb スレッド 複数スレッドのための同期機能
time.rb 日付・時刻 時刻フォーマットの解析、よく使われるフォーマットへの時刻データの整形
timeout.rb その他 一定時刻が経過した場合に例外を投げる。ただし、Rubyレベルで割り込みできない処理(DNSの名前解決など)に対しては無力
tk.rb UI (非推奨)-> tcltk.rb
tmpdir.rb 一時ディレクトリ操作
tracer.rb 開発用 実行トレースを得る
tsort.rb その他 トポロジカルソート (topological sort) と強連結成分
un.rb UNIXコマンドに似たファイル操作ユーティリティ
uri.rb ネットワーク URI
weakref.rb その他 GCされる弱い参照
win32/registry.rb Windows Windowsレジストリを読み書きする(Windows環境専用)
Win32API.so Windows Windows API呼び出し(Windows環境専用)
win32ole.so Windows OLEオートメーションのインターフェイス(Windows環境専用)
win32ole/property.rb Windows OLEプロパティのヘルパークラス
yaml.rb テキスト YAML (YAML Ain't Markup Language) を読み書きする
zlib.so テキスト zlibのインターフェイス。データ圧縮・伸張

 Rubyで使えるライブラリは、たいていの場合、Rubyアプリケーションアーカイブに登録されています。上記にないものについては、次のいずれかで探すといいでしょう。