本書は、Rubyによる開発経験を持つ読者を対象に、プログラミングのテクニックをまとめたレシピ集である。テーマごとに章立てしているので、自分の行いたいことを目次で探して、答えを見つけ出すことができる。本書日本語版では「コードブロックと反復処理」や「リフレクションとメタプログラミング」、「データベースと永続性」や「マルチタスクとマルチスレッド」など、他では情報を見つけにくいテーマを集めて再構成しており、すでにRubyを活用している開発者にとって価値のある内容になっている。Rubyでできることをさらに広げたいRubyプログラマに必携の一冊。
原書と和書の違いについて
Rubyクックブック
―エキスパートのための応用レシピ集
Lucas Carlson, Leonard Richardson 著、株式会社クイープ 訳
- TOPICS
- クックブック , Programming , Ruby
- 発行年月日
- 2007年04月
- PRINT LENGTH
- 512
- ISBN
- 978-4-87311-324-1
- 原書
- Ruby Cookbook
- FORMAT
目次
はじめに 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によるユーザー入力の取得 索引