たのしいRuby 目次


第1部●Rubyをはじめよう

第1章 はじめてのRuby

1.1Rubyを動かす 4
1.1.1Windowsの場合5
1.1.2Unixの場合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.5putsメソッド12
1.6pメソッド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〜end22
1.13繰り返し24
1.13.1while文25
1.13.2timesメソッド25
1.13.3eachメソッド26
1.14メソッドの作成26
1.15別のファイルを取り込む27

第2章 便利なオブジェクト

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章 コマンドを作ろう

3.1コマンドラインからのデータの入力45
3.2ファイルからの読み込み47
3.2.1ファイルからテキストデータを読み込んで表示する47
3.2.2ファイルからテキストデータを1行ずつ読み込んで表示する49
3.2.3ファイルの中から特定のパターンの行のみを選んで出力する50

第2部●基礎を学ぼう

第4章 オブジェクトと変数・定数

4.1オブジェクト57
4.2クラス58
4.3変数59
4.4定数62
4.5予約語62

第5章 条件判断

5.1条件判断とは71
5.2Rubyでの条件72
5.2.1条件と真偽値73
5.2.2論理演算子74
5.3if文75
5.4unless文76
5.5case文78
5.6if修飾子とunless修飾子80
5.7まとめ82

第6章 繰り返し

6.1繰り返しの基本85
6.2繰り返しで気をつけること86
6.3繰り返しの実現方法86
6.4timesメソッド87
6.5for文89
6.6一般的なfor文91
6.7while文92
6.8until文95
6.9eachメソッド96
6.10loopメソッド98
6.11繰り返しの制御98
6.11.1break100
6.11.2next102
6.11.3redo104
6.12まとめ105

第7章 メソッド

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章 クラスとモジュール

8.1クラスとは116
8.1.1クラスとインスタンス116
8.1.2継承117
8.2クラスを作る120
8.2.1class文121
8.2.2initializeメソッド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章 エラー処理と例外

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.6catchとthrow156

第3部●クラスを使おう

第10章 数値(Numeric)クラス

10.1Numericのクラス構成162
10.2数値のリテラル163
10.3算術演算164
10.3.1割り算について165
10.3.2Mathモジュール166
10.4数値型の変換167
10.5ビット演算168
10.6数えあげ170
 練習問題172

第11章 配列(Array)クラス

11.1配列の復習176
11.2配列の作り方177
11.2.1Array.newを使う177
11.2.2%wを使う177
11.2.3to_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.2eachメソッドで要素を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章 文字列(String)クラス

12.1文字列を作る206
12.1.1%Q,%qを使う206
12.1.2ヒアドキュメントを使う207
12.1.3sprintfメソッドを使う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.2Enumerableモジュール関連のメソッド224
12.9.3連結や逆順に関するメソッド225
12.10その他のメソッド226
 練習問題230

第13章 ハッシュ(Hash)クラス

13.1ハッシュの復習232
13.2ハッシュの作り方233
13.2.1{}を使う233
13.2.2Hash.newを使う233
13.3値を取り出す・設定する234
13.3.1キーや値をまとめて取り出す235
13.4あるオブジェクトをキーや値として持っているかどうか調べる236
13.5ハッシュの大きさを調べる237
13.6ハッシュを初期化する238
13.6.12つのキーがあるハッシュを扱う239
13.7応用例:単語数を数える240
 練習問題244

第14章 正規表現(Regexp)クラス

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.3quoteメソッドを使った正規表現257
14.4正規表現のオプション257
14.5後方参照259
14.6正規表現を使うメソッド260
14.6.1subメソッドとgsubメソッド260
14.6.2scanメソッド261
14.7正規表現の例263
 練習問題266

第15章 IOクラス

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章 FileクラスとDirクラス

16.1Fileクラス288
16.1.1ファイル名を変更する288
16.1.2ファイルをコピーする288
16.1.3ファイルを削除する289
16.2ディレクトリの操作289
16.2.1ディレクトリの内容を読む291
16.2.2Dir.glob294
16.2.3ディレクトリの作成と削除295
16.3ファイルとディレクトリの属性295
16.3.1属性の取得295
16.3.2FileTestモジュール298
16.4ファイル名の操作299
16.5ファイル操作関連のライブラリ301
16.5.1find.rb301
16.5.2tempfile.rb303
16.5.3ftools.rb303
 練習問題306

第17章 Timeクラス

17.1Timeオブジェクトを取得する308
17.2時刻を計算する309
17.3時刻のフォーマット309
17.4ローカルタイム310
17.5文字列の解析311
 練習問題313

第4部●Rubyを使いこなそう

第18章 Ruby落ち穂ひろい

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.7BEGIN{}とEND{} 334
18.8alias335
18.9undef335
18.10疑似変数336

第19章 演算子

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章 イテレータ

20.1イテレータとブロックつき呼び出し351
20.2イテレータの基本352
20.3さまざまなイテレータ355
20.3.1配列の場合355
20.3.2ハッシュの場合355
20.3.3ファイルの例356
20.4Enumerableモジュール357
20.4.1eachメソッド357
20.4.2collectメソッド357
20.4.3sortメソッド357
20.5イテレータを作る360
20.5.1引数のあるイテレータ364

第21章 Mix-in

21.1includeメソッド371
21.2Comparableモジュール372
21.3Enumerableモジュール374
21.4継承との関係378
21.5メソッド検索のルール380

第5部●ツールを作ってみよう

第22章 ログの解析

22.1アクセスログの概要385
22.2アクセス数を調べる387
22.3アクセス日を調べる389
22.4アクセス日をグラフで出力する394
22.5特定のファイルへのアクセス数を集計する396

第23章 アンケートの集計

23.1Webフォームを使ったアンケート399
23.1.1設問の形式400
23.1.2回答のフォーマット401
23.1.3アンケート集計の戦略402
23.2プログラムの内容403
23.2.1enquete.rb407
23.2.2Enqueteクラス408
23.2.3EnqueteListクラス409
23.2.4shuukei.rb409

第24章 HTMLの解析

24.1HTMLについて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.2Rubyのインストール433
A.3Windowsでのインストール434
A.4Unixでのインストール444
A.5エディタ447
A.6Rubyリファレンスマニュアル 448
A.7メーリングリスト449
A.8Web上での情報451
A.9エラーメッセージ452