| 1.1 | Rubyを動かす | 4 |
| 1.1.1 | Windowsの場合 | 5 |
| 1.1.2 | Unixの場合 | 6 |
| 1.1.3 | 動作確認 | 7 |
| 1.2 | プログラムの解説 | 7 |
| 1.2.1 | オブジェクト | 7 |
| 1.2.2 | メソッド | 8 |
| 1.3 | 文字列 | 9 |
| 1.3.1 | 改行文字と「\」 | 9 |
| 1.3.2 | 「''」と「""」 | 10 |
| 1.4 | メソッドの呼び出し | 11 |
| 1.5 | putsメソッド | 12 |
| 1.6 | pメソッド | 13 |
| 1.7 | 日本語の表示 | 14 |
| 1.8 | 数値の表示と計算 | 15 |
| 1.8.1 | 数値の表示 | 15 |
| 1.8.2 | 四則演算 | 16 |
| 1.8.3 | 数学的な関数 | 17 |
| 1.9 | 変数 | 18 |
| 1.10 | コメントを書く | 20 |
| 1.11 | 制御構造 | 21 |
| 1.11.1 | 制御構造の分類 | 21 |
| 1.12 | 条件判断:if〜then〜end | 22 |
| 1.13 | 繰り返し | 24 |
| 1.13.1 | while文 | 25 |
| 1.13.2 | timesメソッド | 25 |
| 1.13.3 | eachメソッド | 26 |
| 1.14 | メソッドの作成 | 26 |
| 1.15 | 別のファイルを取り込む | 27 |
| 2.1 | 配列(Array) | 32 |
| 2.1.1 | 配列を作る | 32 |
| 2.1.2 | 配列からオブジェクトを取り出す | 33 |
| 2.1.3 | 配列にオブジェクトを格納する | 34 |
| 2.1.4 | 配列の中身 | 35 |
| 2.1.5 | 配列と大きさ | 36 |
| 2.1.6 | 配列と繰り返し | 36 |
| 2.2 | ハッシュ(Hash) | 38 |
| 2.2.1 | ハッシュを作る | 38 |
| 2.2.2 | ハッシュからオブジェクトを取り出す | 39 |
| 2.2.3 | ハッシュの繰り返し | 39 |
| 2.3 | 正規表現 | 41 |
| 2.3.1 | パターンマッチと正規表現 | 41 |
| 3.1 | コマンドラインからのデータの入力 | 45 |
| 3.2 | ファイルからの読み込み | 47 |
| 3.2.1 | ファイルからテキストデータを読み込んで表示する | 47 |
| 3.2.2 | ファイルからテキストデータを1行ずつ読み込んで表示する | 49 |
| 3.2.3 | ファイルの中から特定のパターンの行のみを選んで出力する | 50 |
| 4.1 | オブジェクト | 57 |
| 4.2 | クラス | 58 |
| 4.3 | 変数 | 59 |
| 4.4 | 定数 | 62 |
| 4.5 | 予約語 | 62 |
| 5.1 | 条件判断とは | 71 |
| 5.2 | Rubyでの条件 | 72 |
| 5.2.1 | 条件と真偽値 | 73 |
| 5.2.2 | 論理演算子 | 74 |
| 5.3 | if文 | 75 |
| 5.4 | unless文 | 76 |
| 5.5 | case文 | 78 |
| 5.6 | if修飾子とunless修飾子 | 80 |
| 5.7 | まとめ | 82 |
| 6.1 | 繰り返しの基本 | 85 |
| 6.2 | 繰り返しで気をつけること | 86 |
| 6.3 | 繰り返しの実現方法 | 86 |
| 6.4 | timesメソッド | 87 |
| 6.5 | for文 | 89 |
| 6.6 | 一般的なfor文 | 91 |
| 6.7 | while文 | 92 |
| 6.8 | until文 | 95 |
| 6.9 | eachメソッド | 96 |
| 6.10 | loopメソッド | 98 |
| 6.11 | 繰り返しの制御 | 98 |
| 6.11.1 | break | 100 |
| 6.11.2 | next | 102 |
| 6.11.3 | redo | 104 |
| 6.12 | まとめ | 105 |
| 7.1 | メソッド呼び出し | 107 |
| 7.2 | メソッドの分類 | 108 |
| 7.2.1 | インスタンスメソッド | 108 |
| 7.2.2 | クラスメソッド | 109 |
| 7.2.3 | 関数的メソッド | 110 |
| 7.3 | メソッドの定義 | 110 |
| 7.3.1 | メソッドの返り値 | 112 |
| 8.1 | クラスとは | 116 |
| 8.1.1 | クラスとインスタンス | 116 |
| 8.1.2 | 継承 | 117 |
| 8.2 | クラスを作る | 120 |
| 8.2.1 | class文 | 121 |
| 8.2.2 | initializeメソッド | 121 |
| 8.2.3 | インスタンス変数とインスタンスメソッド | 122 |
| 8.2.4 | アクセスメソッド | 123 |
| 8.2.5 | クラスメソッド | 125 |
| 8.2.6 | 定数 | 126 |
| 8.2.7 | クラス変数 | 127 |
| 8.2.8 | クラスを拡張する | 128 |
| 8.2.9 | 継承する | 128 |
| 8.2.10 | メソッドの呼び出しを制限する | 130 |
| 8.3 | オブジェクト指向とは | 133 |
| 8.3.1 | データと処理 | 133 |
| 8.3.2 | 「データと処理」の問題点 | 134 |
| 8.3.3 | オブジェクト | 136 |
| 8.3.4 | オブジェクト指向の特徴 | 139 |
| 8.4 | モジュールとは | 140 |
| 8.4.1 | モジュールの使い方 | 141 |
| 8.5 | モジュールを作る | 143 |
| 8.5.1 | 定数 | 143 |
| 8.5.2 | メソッドの定義 | 144 |
| 9.1 | エラー処理について | 145 |
| 9.2 | 例外処理 | 147 |
| 9.3 | 例外処理の書き方 | 148 |
| 9.4 | 後処理 | 152 |
| 9.5 | やりなおし | 153 |
| 9.5.1 | 捕捉する例外を指定する | 153 |
| 9.5.2 | 例外クラス | 154 |
| 9.5.3 | 例外を発生させる | 155 |
| 9.6 | catchとthrow | 156 |
| 10.1 | Numericのクラス構成 | 162 |
| 10.2 | 数値のリテラル | 163 |
| 10.3 | 算術演算 | 164 |
| 10.3.1 | 割り算について | 165 |
| 10.3.2 | Mathモジュール | 166 |
| 10.4 | 数値型の変換 | 167 |
| 10.5 | ビット演算 | 168 |
| 10.6 | 数えあげ | 170 |
| 練習問題 | 172 |
| 11.1 | 配列の復習 | 176 |
| 11.2 | 配列の作り方 | 177 |
| 11.2.1 | Array.newを使う | 177 |
| 11.2.2 | %wを使う | 177 |
| 11.2.3 | to_aメソッドを使う | 178 |
| 11.2.4 | 文字列のsplitメソッドを使う | 178 |
| 11.3 | インデックスの使い方 | 179 |
| 11.3.1 | 要素を取り出す | 179 |
| 11.3.2 | 要素を置き換える | 182 |
| 11.3.3 | 要素を挿入する | 183 |
| 11.3.4 | 複数のインデックスから配列を作る | 184 |
| 11.4 | インデックスを使わない配列の操作 | 185 |
| 11.5 | 集合としての配列 | 186 |
| 11.5.1 | 「|」と「+」の違い | 188 |
| 11.6 | 「列」としての配列 | 188 |
| 11.7 | 配列の主なメソッド | 191 |
| 11.7.1 | 配列に要素を加える | 191 |
| 11.7.2 | 配列から要素を取り除く | 193 |
| 11.7.3 | 配列の要素を置き換える | 195 |
| 11.8 | 配列とイテレータ | 197 |
| 11.9 | 配列内の各要素を処理する | 198 |
| 11.9.1 | 繰り返しとインデックスを使う | 198 |
| 11.9.2 | eachメソッドで要素を1つずつ得る | 199 |
| 11.9.3 | 破壊的なメソッドで繰り返しを行う | 200 |
| 11.9.4 | その他のイテレータを使う | 200 |
| 11.9.5 | 専用のイテレータを作る | 200 |
| 11.10 | 配列の要素 | 200 |
| 11.10.1 | 例:簡単な行列を使う | 201 |
| 11.10.2 | 初期化に注意 | 201 |
| 練習問題 | 203 |
| 12.1 | 文字列を作る | 206 |
| 12.1.1 | %Q,%qを使う | 206 |
| 12.1.2 | ヒアドキュメントを使う | 207 |
| 12.1.3 | sprintfメソッドを使う | 208 |
| 12.2 | 文字列の長さを得る | 211 |
| 12.3 | 文字列を分割する | 212 |
| 12.4 | 文字列をつなげる | 214 |
| 12.5 | 文字列のインデックス | 216 |
| 12.6 | 文字列を比較する | 217 |
| 12.6.1 | 文字列の大小比較 | 217 |
| 12.7 | 改行文字の扱い方 | 220 |
| 12.8 | 文字列の検索と置換 | 221 |
| 12.8.1 | 文字列の検索 | 221 |
| 12.8.2 | 文字列の置換 | 223 |
| 12.9 | 文字列と配列で共通するメソッド | 223 |
| 12.9.1 | インデックス操作に関するメソッド | 224 |
| 12.9.2 | Enumerableモジュール関連のメソッド | 224 |
| 12.9.3 | 連結や逆順に関するメソッド | 225 |
| 12.10 | その他のメソッド | 226 |
| 練習問題 | 230 |
| 13.1 | ハッシュの復習 | 232 |
| 13.2 | ハッシュの作り方 | 233 |
| 13.2.1 | {}を使う | 233 |
| 13.2.2 | Hash.newを使う | 233 |
| 13.3 | 値を取り出す・設定する | 234 |
| 13.3.1 | キーや値をまとめて取り出す | 235 |
| 13.4 | あるオブジェクトをキーや値として持っているかどうか調べる | 236 |
| 13.5 | ハッシュの大きさを調べる | 237 |
| 13.6 | ハッシュを初期化する | 238 |
| 13.6.1 | 2つのキーがあるハッシュを扱う | 239 |
| 13.7 | 応用例:単語数を数える | 240 |
| 練習問題 | 244 |
| 14.1 | 正規表現について | 246 |
| 14.1.1 | 正規表現の書き方と使い方 | 246 |
| 14.1.2 | 正規表現オブジェクトの作り方 | 246 |
| 14.2 | 正規表現のパターンとマッチング | 247 |
| 14.2.1 | 通常の文字によるマッチング | 248 |
| 14.2.2 | 行頭と行末とのマッチング | 248 |
| 14.2.3 | マッチさせたい文字を範囲で指定する | 250 |
| 14.2.4 | 任意の文字とのマッチング | 251 |
| 14.2.5 | バックスラッシュを使ったパターン | 252 |
| 14.2.6 | 繰り返し | 254 |
| 14.2.7 | 「()」と繰り返し | 256 |
| 14.2.8 | 選択 | 256 |
| 14.3 | quoteメソッドを使った正規表現 | 257 |
| 14.4 | 正規表現のオプション | 257 |
| 14.5 | 後方参照 | 259 |
| 14.6 | 正規表現を使うメソッド | 260 |
| 14.6.1 | subメソッドとgsubメソッド | 260 |
| 14.6.2 | scanメソッド | 261 |
| 14.7 | 正規表現の例 | 263 |
| 練習問題 | 266 |
| 15.1 | 入出力の種類 | 268 |
| 15.1.1 | 標準入出力 | 268 |
| 15.1.2 | ファイル入出力 | 270 |
| 15.1.3 | その他 | 272 |
| 15.2 | 基本的な入出力操作 | 273 |
| 15.2.1 | 入力操作 | 273 |
| 15.2.2 | 出力操作 | 275 |
| 15.3 | ファイルポインタ | 277 |
| 15.4 | バイナリモードとテキストモード | 279 |
| 15.5 | バッファリング | 280 |
| 15.6 | コマンドとのやりとり | 283 |
| 練習問題 | 285 |
| 16.1 | Fileクラス | 288 |
| 16.1.1 | ファイル名を変更する | 288 |
| 16.1.2 | ファイルをコピーする | 288 |
| 16.1.3 | ファイルを削除する | 289 |
| 16.2 | ディレクトリの操作 | 289 |
| 16.2.1 | ディレクトリの内容を読む | 291 |
| 16.2.2 | Dir.glob | 294 |
| 16.2.3 | ディレクトリの作成と削除 | 295 |
| 16.3 | ファイルとディレクトリの属性 | 295 |
| 16.3.1 | 属性の取得 | 295 |
| 16.3.2 | FileTestモジュール | 298 |
| 16.4 | ファイル名の操作 | 299 |
| 16.5 | ファイル操作関連のライブラリ | 301 |
| 16.5.1 | find.rb | 301 |
| 16.5.2 | tempfile.rb | 303 |
| 16.5.3 | ftools.rb | 303 |
| 練習問題 | 306 |
| 17.1 | Timeオブジェクトを取得する | 308 |
| 17.2 | 時刻を計算する | 309 |
| 17.3 | 時刻のフォーマット | 309 |
| 17.4 | ローカルタイム | 310 |
| 17.5 | 文字列の解析 | 311 |
| 練習問題 | 313 |
| 18.1 | コマンドラインオプション | 317 |
| 18.1.1 | デバッグ・動作確認用 | 317 |
| 18.1.2 | 情報取得 | 320 |
| 18.1.3 | ワンライナー用 | 321 |
| 18.1.4 | セキュリティチェック | 323 |
| 18.1.5 | その他 | 323 |
| 18.2 | 環境変数 | 325 |
| 18.3 | リテラル | 326 |
| 18.4 | 組み込み変数 | 328 |
| 18.5 | 組み込み定数 | 331 |
| 18.6 | 多重代入 | 332 |
| 18.7 | BEGIN{}とEND{} | 334 |
| 18.8 | alias | 335 |
| 18.9 | undef | 335 |
| 18.10 | 疑似変数 | 336 |
| 19.1 | 論理演算子の応用 | 339 |
| 19.2 | 条件演算子 | 341 |
| 19.3 | 自己代入 | 342 |
| 19.4 | 範囲演算子 | 344 |
| 19.5 | 演算子の優先順位 | 345 |
| 19.6 | 演算子を定義する | 346 |
| 19.6.1 | 二項演算子 | 346 |
| 19.6.2 | 単項演算子 | 347 |
| 19.6.3 | 配列参照演算子 | 348 |
| 20.1 | イテレータとブロックつき呼び出し | 351 |
| 20.2 | イテレータの基本 | 352 |
| 20.3 | さまざまなイテレータ | 355 |
| 20.3.1 | 配列の場合 | 355 |
| 20.3.2 | ハッシュの場合 | 355 |
| 20.3.3 | ファイルの例 | 356 |
| 20.4 | Enumerableモジュール | 357 |
| 20.4.1 | eachメソッド | 357 |
| 20.4.2 | collectメソッド | 357 |
| 20.4.3 | sortメソッド | 357 |
| 20.5 | イテレータを作る | 360 |
| 20.5.1 | 引数のあるイテレータ | 364 |
| 21.1 | includeメソッド | 371 |
| 21.2 | Comparableモジュール | 372 |
| 21.3 | Enumerableモジュール | 374 |
| 21.4 | 継承との関係 | 378 |
| 21.5 | メソッド検索のルール | 380 |
| 22.1 | アクセスログの概要 | 385 |
| 22.2 | アクセス数を調べる | 387 |
| 22.3 | アクセス日を調べる | 389 |
| 22.4 | アクセス日をグラフで出力する | 394 |
| 22.5 | 特定のファイルへのアクセス数を集計する | 396 |
| 23.1 | Webフォームを使ったアンケート | 399 |
| 23.1.1 | 設問の形式 | 400 |
| 23.1.2 | 回答のフォーマット | 401 |
| 23.1.3 | アンケート集計の戦略 | 402 |
| 23.2 | プログラムの内容 | 403 |
| 23.2.1 | enquete.rb | 407 |
| 23.2.2 | Enqueteクラス | 408 |
| 23.2.3 | EnqueteListクラス | 409 |
| 23.2.4 | shuukei.rb | 409 |
| 24.1 | HTMLについて | 411 |
| 24.1.1 | 要素とタグ | 411 |
| 24.1.2 | コメント | 413 |
| 24.1.3 | 文字参照 | 413 |
| 24.2 | プログラムの作成 | 414 |
| 24.2.1 | コメントの解析 | 415 |
| 24.2.2 | タグの解析(その1) | 416 |
| 24.2.3 | テキストデータの解析 | 417 |
| 24.2.4 | 試してみる | 417 |
| 24.2.5 | タグの解析(その2) | 419 |
| 24.3 | リンクの一覧 | 425 |
| A.1 | 付録CD-ROMの構成 | 432 |
| A.2 | Rubyのインストール | 433 |
| A.3 | Windowsでのインストール | 434 |
| A.4 | Unixでのインストール | 444 |
| A.5 | エディタ | 447 |
| A.6 | Rubyリファレンスマニュアル | 448 |
| A.7 | メーリングリスト | 449 |
| A.8 | Web上での情報 | 451 |
| A.9 | エラーメッセージ | 452 |