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 |