Rubyスクリプティングテクニック

―テスト駆動による日常業務処理術

[cover photo]
TOPICS
Programming , Ruby
発行年月日
PRINT LENGTH
312
ISBN
978-4-87311-356-2
原書
Everyday Scripting with Ruby
FORMAT
PDF
Print
2,750円
この商品は品切れ再入荷未定です

ソフトウェア開発プロジェクトに参加している人は、日々、手作業による雑用に追われています。データベースに手作業で入力したり、バージョン管理システムの出力をチェックし、目的のファイルを探し出したりする日常の業務を、スクリプトを使って簡略化しようというのが本書の目的です。Rubyとスクリプトの基本、テスト駆動のスクリプトを作る方法、他の人が作ったライブラリをスクリプトに組み込む方法、さらにフレームワークの活用、継承についての高度なトピックまで、具体的なプロジェクトを例に上げ分かりやすく解説します。

目次

はじめに

1章 さあ、Rubyをはじめよう
	1.1 プラクティスファイルのダウンロード
	1.2 はじめにコマンドラインありき
		1.2.1 Windows
		1.2.2 Mac OS X、Linux、BSD、その他のUnix系
	1.3 Rubyのインストールは必要ですか
	1.4 Rubyのインストール
		1.4.1 Windows
		1.4.2 Mac OS X
		1.4.3 他のUnix系
	1.5 2つの基本ツール
		1.5.1 エディタ
		1.5.2 irb
	1.6 	コマンドラインプロンプトとirbプロンプト
		1.6.1 プロンプトの操作
	1.7 ミスをしてみる

I部 基 本

2章 はじめてのスクリプト:ファイルインベントリを比較する
	2.1 実際にスクリプトを実行してみる
	2.2 Rubyの世界
	2.3 オブジェクトとのメッセージのやり取り
	2.4 オブジェクトに変数名を付ける
	2.5 配列を比較する
		2.5.1 名前付けのルール(命名規則)
	2.6 画面へのプリント
	2.7 スクリプトを作る
	2.8 この章で学んだこと
	2.9 演 習

3章 Rubyの事実:配列

4章 3つの改良と1つのバグ修正
	4.1 コマンドライン引数
	4.2 大文字と小文字の区別を無視する
	4.3 メソッド
	4.4 文字列を分析する
	4.5 バグを修正する
	4.6 この章で学んだこと
	4.7 演習への序曲
	4.8 演 習

5章 Rubyの事実:等価テスト、そしてUnless
	5.1 if...elsif...else
		5.1.1 警告:elsifの入力ミスにご注意
	5.2 オブジェクト同士が等価かどうかチェックする
	5.3 ifの簡略形
	5.4 unless
	5.5 疑問符演算子

II部 スクリプトを拡張する

6章 チャーン(churn):落ち着いてプロジェクトを記述する
	6.1 プロジェクト
	6.2 解決策を構築する
		6.2.1 テスト駆動のmonth_before
		6.2.2 時間をフォーマットする
		6.2.3 文字列をフォーマットする
		6.2.4 外部プログラムを使用する
		6.2.5 失敗その1
		6.2.6 失敗その2
	6.3 この章で学んだこと
	6.4 演 習

7章 Rubyの事実:ブール値
	7.1 他のブール演算子
	7.2 優先度
	7.3 オブジェクトの値はすべてtrue
	7.4 ブール式はオブジェクトを選択可能

8章 我がよき友、正規表現
	8.1 正規表現と文字列とのマッチ
	8.2 正規表現を使って文字列を分解する
	8.3 配列の要素の順序を変更する
	8.4 この章で学んだこと
	8.5 演 習

9章 Rubyの事実:正規表現
	9.1 特殊文字
	9.2 グループと代替
	9.3 文字列を分解する
	9.4 舞台裏の変数
	9.5 正規表現オプション
	9.6 参考文献
	9.7 演 習

10章 クラスのデータとメソッド
	10.1 クラスにメソッドを定義する
	10.2 オブジェクトに含まれるデータ
	10.3 この章で学んだこと
	10.4 演 習

11章 Rubyの事実:クラス(シンボルについて)
	11.1 アクセサを定義する
	11.2 self
	11.3 クラスメソッド
	11.4 クラス変数とグローバル変数
	11.5 演 習

III部 Webの世界に飛び込む

12章 正規表現によるWebページのスクレーピング
	12.1 Webページをファイルのように扱う
	12.2 ページの一部にフォーカスを当てる
	12.3 タイトルと著者を抽出する
	12.4 ハッシュによって名前付きデータを格納する
	12.5 トリップを開始する
		12.5.1 よりよいトリップ
	12.6 自分自身で演習を実施する
		12.6.1 テスト

13章 Webアプリケーションとの別の形での連携
	13.1 XHTMLを扱う
	13.2 ブラウザを操作する
	13.3 プロトコルへの直接的なアクセス

14章 カンマ区切り値を利用する
	14.1 CSVライブラリ
	14.2 自動クリーンアップのためのブロックの使用
	14.3 さらなるCSV操作
	14.4 ここまで学んだ知識をaffinity-trip.rbに適用する
	14.5 標準ライブラリのクラスを発見し理解する
	14.6 コードをデータに置き換える

15章 Rubyの事実:ハッシュ

16章 Rubyの事実:引数リスト
	16.1 オプション引数
	16.2 残余引数
		16.2.1 残余引数の隠し技
	16.3 キーワード引数
		16.3.1 結果

17章 ヘルパースクリプトとアプリケーションをダウンロードする
	17.1 パッケージを見つける
	17.2 setup.rbを使用する
	17.3 RubyGemsを使用する
		17.3.1 RubyでGemsの検索処理を簡素化する
	17.4 ダウンロードしたものを理解する

18章 スクリプトの仕上げ
	18.1 ロードパス
	18.2 ファイル名の衝突を回避する
	18.3 モジュールを使用してクラス名の衝突を回避する
		18.3.1 モジュールをインクルードする
	18.4 フォルダ構造を自動作成するスクリプト
	18.5 確実な作業を行う
	18.6 rakefile
	18.7 ロケーションに依存しないテスト
	18.8 演 習

19章 Rubyの事実:モジュール
	19.1 入れ子のモジュール
	19.2 モジュールをインクルードする
		19.2.1 名前の衝突
		19.2.2 入れ子とインクルードは異なる
	19.3 クラスはモジュール

20章 スクリプトの実行中に問題に遭遇したら
	20.1 例外を使って問題を報告する
	20.2 エラー処理戦略
	20.3 例外処理オプション
		20.3.1 例外ハンドラのスコープ(範囲)
		20.3.2 例外を発生させる
		20.3.3 例外を再発生させる
		20.3.4 確実な動作を保証する
	20.4 ブロックを使用するメソッド
	20.5 演 習

IV部 完ぺきなスクリプタを目指して

21章 フレームワーク:ブランクを埋めてスクリプトを記述する
	21.1 watchdogスクリプトを使用する
		21.1.1 watchdogを設定する
		21.1.2 UserChoicesフレームワーク
	21.2 継 承
		21.2.1 メソッドのオーバーライド
		21.2.2 スーパークラスを拡張する
		21.2.3 インスタンス変数
	21.3 ユーザ選択を集める
		21.3.1 ブランクを埋めるメソッド

22章 発見は作成より安全である
	22.1 Barkerの物語
	22.2 どこで何が起こるのか
		22.2.1 一例
	22.3 スーパークラスの代わりとなるモジュール
		22.3.1 いつどれを使用するか

23章 最終的な考察

V部 付 録

付録A 用語解説

付録B 演習の解答

付録C 参考文献

索 引