Rubyクックブック

―エキスパートのための応用レシピ集

[cover photo]
TOPICS
クックブック , Programming , Ruby
発行年月日
PRINT LENGTH
512
ISBN
978-4-87311-324-1
原書
Ruby Cookbook
FORMAT
PDF

本書は、Rubyによる開発経験を持つ読者を対象に、プログラミングのテクニックをまとめたレシピ集である。テーマごとに章立てしているので、自分の行いたいことを目次で探して、答えを見つけ出すことができる。本書日本語版では「コードブロックと反復処理」や「リフレクションとメタプログラミング」、「データベースと永続性」や「マルチタスクとマルチスレッド」など、他では情報を見つけにくいテーマを集めて再構成しており、すでにRubyを活用している開発者にとって価値のある内容になっている。Rubyでできることをさらに広げたいRubyプログラマに必携の一冊。

原書と和書の違いについて

目次

はじめに

1章 日付と時間
	レシピ1.1 今日の日付の割り出し
	レシピ1.2 日付の正確な解析とファジィ解析
	レシピ1.3 日付の出力
	レシピ1.4 日付の反復
	レシピ1.5 日付の演算
	レシピ1.6 任意の日付からの経過日数
	レシピ1.7 タイムゾーンの変換
	レシピ1.8 夏時間のチェック
	レシピ1.9 TimeオブジェクトとDateTimeオブジェクト間の変換
	レシピ1.10 曜日の検出
	レシピ1.11 商業日の処理
	レシピ1.12 コードブロックの定期実行
	レシピ1.13 待機時間の設定
	レシピ1.14 長時間の処理に対するタイムアウトの追加

2章 コードブロックと反復処理
	レシピ2.1 ブロックの作成と呼び出し
	レシピ2.2 ブロックを受け取るメソッドの作成
	レシピ2.3 ブロック引数の変数へのバインド
	レシピ2.4 クロージャとしてのブロック:コードブロック内での外部変数の使用
	レシピ2.5 データ構造の反復子の作成
	レシピ2.6 オブジェクトの反復方法の変更
	レシピ2.7 分類または収集のためのブロックメソッドの作成
	レシピ2.8 反復処理の中止
	レシピ2.9 複数の反復可能なオブジェクトの並行ループ処理
	レシピ2.10 ブロックメソッドによるセットアップとクリーンアップの隠ぺい
	レシピ2.11 コールバックによるシステムの疎結合

3章 モジュールと名前空間
	レシピ3.1 ミックスインによる多重継承のシミュレーション
	レシピ3.2 モジュールによる特定のオブジェクトの拡張
	レシピ3.3 クラスメソッドのインクルード
	レシピ3.4 Enumerableの実装
	レシピ3.5 名前空間による名前の競合の回避
	レシピ3.6 ライブラリの自動読み込み
	レシピ3.7 名前空間のインクルード
	レシピ3.8 モジュールによって定義されたインスタンス変数の初期化
	レシピ3.9 ミックスインモジュールの自動的な初期化

4章 リフレクションとメタプログラミング
	レシピ4.1 オブジェクトのクラスとスーパークラスの検出
	レシピ4.2 オブジェクトのメソッドのリストアップ
	レシピ4.3 オブジェクト固有のメソッドのリストアップ
	レシピ4.4 メソッドへの参照の取得
	レシピ4.5 他人が作成したクラスのバグの修正
	レシピ4.6 クラスへの変更の待ち受け
	レシピ4.7 オブジェクトに必要な属性があるかどうかのチェック
	レシピ4.8 未定義のメソッド呼び出しへの応答
	レシピ4.9 インスタンス変数の自動的な初期化
	レシピ4.10 メタプログラミングによる決まりきったコードの回避
	レシピ4.11 文字列評価によるメタプログラミング
	レシピ4.12 以前のコンテキストでのコードの評価
	レシピ4.13 メソッドの未定義化
	レシピ4.14 メソッドのエイリアスの作成
	レシピ4.15 アスペクト指向プログラミング
	レシピ4.16 ソフトウェアコントラクトの適用

5章 データベースと永続性
	レシピ5.1 YAMLによるデータのシリアライゼーション
	レシピ5.2 Marshalによるデータのシリアライゼーション
	レシピ5.3 Madeleineによるオブジェクトの保存
	レシピ5.4 SimpleSearchによる非構造化テキストのインデックス付け
	レシピ5.5 Ferretによる構造化テキストのインデックス付け
	レシピ5.6 Berkeleyデータベースの使用
	レシピ5.7 UNIX上でのMySQLの制御
	レシピ5.8 クエリから返される行数の検出
	レシピ5.9 MySQLデータベースとの直接のやり取り
	レシピ5.10 PostgreSQLデータベースとの直接のやり取り
	レシピ5.11 ActiveRecordによるオブジェクトリレーショナルマッピングの使用
	レシピ5.12 Ogによるオブジェクトリレーショナルマッピングの使用
	レシピ5.13 プログラムによるクエリの構築
	レシピ5.14 ActiveRecordによるデータの検証
	レシピ5.15 SQLインジェクション攻撃の阻止
	レシピ5.16 ActiveRecordでのトランザクションの使用
	レシピ5.17 テーブルイベントへのフックの追加
	レシピ5.18 データベースミックスインによるタグ機能の追加

6章 インターネットサービス
	レシピ6.1 Webページのコンテンツの取得
	レシピ6.2 HTTPS Webリクエストの作成
	レシピ6.3 HTTPリクエストヘッダーのカスタマイズ
	レシピ6.4 DNSクエリの実行
	レシピ6.5 メールの送信
	レシピ6.6 IMAPによるメールの読み取り
	レシピ6.7 POP3によるメールの読み取り
	レシピ6.8 FTPクライアントの作成
	レシピ6.9 Telnetクライアントの作成
	レシピ6.10 SSHクライアントの作成
	レシピ6.11 別のマシンへのファイルのコピー
	レシピ6.12 BitTorrentクライアントの作成
	レシピ6.13 マシンのping
	レシピ6.14 インターネットサーバーの作成
	レシピ6.15 URLの解析
	レシピ6.16 CGIスクリプトの作成
	レシピ6.17 クッキーおよびその他のHTTPレスポンスヘッダーの設定
	レシピ6.18 CGIによるファイルアップロードの処理
	レシピ6.19 WEBrickによるサーブレットの実行
	レシピ6.20 現実的なHTTPクライアント

7章 Webサービスと分散プログラミング
	レシピ7.1 Amazonでの書籍検索
	レシピ7.2 Flickrでの写真検索
	レシピ7.3 XML-RPCクライアントの作成
	レシピ7.4 SOAPクライアントの作成
	レシピ7.5 SOAPサーバーの作成
	レシピ7.6 GoogleのSOAPサービスによるWeb検索
	レシピ7.7 WSDLファイルによるSOAP呼び出しの簡易化
	レシピ7.8 クレジットカード決済
	レシピ7.9 UPSまたはFedExによる送料の検索
	レシピ7.10 任意数のコンピュータ間でのハッシュ共有
	レシピ7.11 分散キューの実装
	レシピ7.12 共有「ホワイトボード」の作成
	レシピ7.13 ACLによるDRbサービスの保護
	レシピ7.14 RindaによるDRbサービスの自動検出
	レシピ7.15 分散できないオブジェクトのプロキシ処理
	レシピ7.16 MemCachedによる分散RAMへのデータの保存
	レシピ7.17 MemCachedによる高価な結果のキャッシュ
	レシピ7.18 リモート制御のジュークボックス

8章 テスト、デバッグ、最適化、文書化
	レシピ8.1 デバッグモードでのコードの実行
	レシピ8.2 例外の送出
	レシピ8.3 例外の処理
	レシピ8.4 例外送出後の再実行
	レシピ8.5 アプリケーションへのログの追加
	レシピ8.6 トレースバックの作成と理解
	レシピ8.7 単体テストの作成
	レシピ8.8 単体テストの実行
	レシピ8.9 外部リソースを使用するコードのテスト
	レシピ8.10 ブレークポイントによるアプリケーションの状態の調査と変更
	レシピ8.11 アプリケーションの文書化
	レシピ8.12 アプリケーションのプロファイリング
	レシピ8.13 競合ソリューションのベンチマーク
	レシピ8.14 複数の解析ツールの同時実行
	レシピ8.15 コールグラフアナライザの作成

9章 ソフトウェアのパッケージ化と配布
	レシピ9.1 gemリポジトリの検索によるライブラリの検出
	レシピ9.2 gemのインストールと使用
	レシピ9.3 特定バージョンのgemの要求
	レシピ9.4 gemのアンインストール
	レシピ9.5 インストールされたgemのドキュメントの参照
	レシピ9.6 gemパッケージの作成
	レシピ9.7 gemの配布
	レシピ9.8 setup.rbによるスタンドアロンパッケージのインストールと作成

10章 Rakeによるタスクの自動化
	レシピ10.1 単体テストの自動実行
	レシピ10.2 ドキュメントの自動生成
	レシピ10.3 生成されたファイルのクリーンアップ
	レシピ10.4 gemの自動ビルド
	レシピ10.5 コードに関する統計データの収集
	レシピ10.6 ドキュメントの公開
	レシピ10.7 複数のタスクの同時実行
	レシピ10.8 汎用プロジェクトのRakefile

11章 マルチタスクとマルチスレッド
	レシピ11.1 UNIXでのデーモンプロセスの実行
	レシピ11.2 Windowsサービスの作成
	レシピ11.3 スレッドによる2つの作業の同時実行
	レシピ11.4 オブジェクトへのアクセスの同期
	レシピ11.5 スレッドの終了
	レシピ11.6 複数のオブジェクトによるコードブロックの同時実行
	レシピ11.7 スレッドプールによるマルチスレッドの制限
	レシピ11.8 popenによる外部プロセスの実行
	レシピ11.9 UNIXシェルコマンドからの出力とエラーストリームの捕捉
	レシピ11.10 別のマシン上のプロセスの制御
	レシピ11.11 デッドロックの回避

12章 ユーザーインターフェイス
	レシピ12.1 入力の行単位での取得
	レシピ12.2 入力の文字単位での取得
	レシピ12.3 コマンドライン引数の解析
	レシピ12.4 プログラムが対話形式で実行されているかどうかのテスト
	レシピ12.5 Cursesプログラムのセットアップとテアダウン
	レシピ12.6 画面の消去
	レシピ12.7 ターミナルサイズの検出
	レシピ12.8 テキストの色の変更
	レシピ12.9 パスワードの読み取り
	レシピ12.10 Readlineによる入力の編集
	レシピ12.11 キーボードライトの点滅
	レシピ12.12 TkによるGUIアプリケーションの作成
	レシピ12.13 wxRubyによるGUIアプリケーションの作成
	レシピ12.14 Ruby/GTKによるGUIアプリケーションの作成
	レシピ12.15 RubyCocoaによるMac OS Xアプリケーションの作成
	レシピ12.16 AppleScriptによるユーザー入力の取得

索引