譯者序
序言
前言
緻謝
第一篇 基礎與腳手架
第1章 讓它跑起來:安裝Ruby 1
1.1 安裝Ruby 2
1.1.1 Windows平颱 2
1.1.2 Apple Mac OS X平颱 4
1.1.3 Linux平颱 5
1.1.4 其他平颱 7
1.2 小結 8
第2章 編程等於快樂:Ruby和麵嚮對象概覽 9
2.1 初始步驟 9
2.1.1 irb:交互式Ruby 9
2.1.2 Ruby是計算機的通用語 10
2.1.3 為什麼Ruby是如此傑齣的編程語言 10
2.1.4 心靈小徑 11
2.2 把思路轉變成Ruby代碼 13
2.2.1 Ruby怎麼理解對象和類的概念 13
2.2.2 造人過程 13
2.2.3 基礎變量 15
2.2.4 從人到寵物 15
2.3 一切都是對象 18
2.3.1 Kernel模塊的方法 19
2.3.2 嚮方法傳遞數據 19
2.3.3 使用String類的方法 20
2.4 以非麵嚮對象方式使用Ruby 21
2.5 小結 22
第3章 Ruby的構造元素:數據、錶達式和流程控製 24
3.1 數字與錶達式 24
3.1.1 錶達式基礎知識 24
3.1.2 變量 24
3.1.3 比較運算符與錶達式 25
3.1.4 用塊和迭代子在數字中循環 27
3.1.5 浮點數 28
3.1.6 常量 29
3.2 文本與字符串 30
3.2.1 字麵字符串 30
3.2.2 字符串錶達式 31
3.2.3 插寫 32
3.2.4 字符串方法 33
3.2.5 正則錶達式與字符串操作 34
3.3 數組與列錶 38
3.3.1 基本數組 38
3.3.2 字符串切分成數組 40
3.3.3 數組迭代 40
3.3.4 數組的其他方法 41
3.4 散列錶 43
3.4.1 散列錶的基礎方法 43
3.4.2 散列錶中的散列錶 44
3.5 流程控製 45
3.5.1 if與unless 45
3.5.2 ?:,三元運算符 46
3.5.3 elsif與case 47
3.5.4 while與until 48
3.5.5 代碼塊 49
3.6 其他有用的構造元素 51
3.6.1 日期與時間 51
3.6.2 大數字 53
3.6.3 範圍 54
3.6.4 符號 55
3.6.5 類間轉換 56
3.7 小結 57
第4章 開發基礎的Ruby應用程序 59
4.1 處理源代碼文件 59
4.1.1 創建測試文件 59
4.1.2 測試用源代碼文件 60
4.1.3 運行源代碼 61
4.2 我們的目標程序:文本分析器 63
4.2.1 基本功能需求 63
4.2.2 構建程序基本框架 64
4.2.3 獲取啞文本 64
4.2.4 載入文本文件並統計行數 65
4.2.5 統計字符數 66
4.2.6 統計字數 66
4.2.7 統計句子和段落數 68
4.2.8 計算平均值 69
4.2.9 到目前為止的源代碼 69
4.3 增加額外功能 70
4.3.1 “有用”字詞的百分比 70
4.3.2 找齣“有趣的”句子進行匯總 72
4.3.3 分析text.txt之外的其他文件 73
4.4 完整的程序 74
4.5 小結 76
第5章 Ruby生態係統 77
5.1 Ruby的曆史 77
5.1.1 Ruby的起源 77
5.1.2 Ruby的影響 78
5.1.3 嚮西方流傳 78
5.2 Ruby on Rails 80
5.2.1 Rails麵世的由來 80
5.2.2 Web (2.0) 是怎樣贏的 81
5.3 開源文化 82
5.4 如何獲得幫助 83
5.4.1 郵件列錶 83
5.4.2 Usenet新聞組 83
5.4.3 因特網中繼聊天工具 83
5.4.4 文檔 84
5.4.5 論壇 85
5.5 加入社區 85
5.5.1 嚮彆人提供幫助 85
5.5.2 貢獻代碼 86
5.5.3 網絡博客 86
5.6 小結 87
第二篇 Ruby的核心
第6章 類、對象和模塊 89
6.1 為什麼要用麵嚮對象 89
6.2 麵嚮對象基礎知識 92
6.2.1 局部變量、全局變量、對象變量和類變量 92
6.2.2 類方法和對象方法 95
6.2.3 繼承 97
6.2.4 覆寫現有方法 99
6.2.5 對象方法的反射與發現 101
6.2.6 封裝 102
6.2.7 多態 106
6.2.8 嵌套類 107
6.2.9 常量的作用域 108
6.3 模塊、命名空間和摻入 109
6.3.1 命名空間 109
6.3.2 摻入 111
6.4 用對象構建“地下城”文本冒險遊戲 117
6.4.1 地下城的概念 117
6.4.2 創建初始類 118
6.4.3 Structs:快捷簡單的數據類 119
6.4.4 創建房間 121
6.4.5 讓地下城運轉起來 122
6.5 小結 125
第7章 項目與程序庫 127
7.1 項目和使用其他文件的代碼 127
7.1.1 基本的文件包含 127
7.1.2 從其他目錄包含 129
7.1.3 有條件地包含代碼 129
7.1.4 嵌套包含 130
7.2 程序庫 130
7.2.1 標準程序庫 131
7.2.2 RubyGems包 133
7.3 小結 139
第8章 文檔編寫、錯誤處理、調試和測試 140
8.1 文檔編寫 140
8.1.1 用RDoc生成文檔 140
8.1.2 RDoc技術 142
8.2 調試與齣錯 144
8.2.1 異常和齣錯處理 145
8.2.2 Catch與Throw方法 147
8.2.3 Ruby調試器 148
8.3 測試 151
8.3.1 測試驅動開發的哲學 151
8.3.2 單元測試 153
8.3.3 更多的Test::Unit斷言 154
8.4 性能基準度量和優化分析 155
8.4.1 性能基準簡單度量 156
8.4.2 性能優化分析 157
8.5 小結 159
第9章 文件和數據庫 161
9.1 輸入與輸齣 161
9.1.1 鍵盤輸入 161
9.1.2 文件輸入輸齣 162
9.2 數據庫基礎 173
9.2.1 文本文件數據庫 174
9.2.2 對象和數據結構的存儲 176
9.3 關係型數據庫與SQL 179
9.3.1 關係型數據庫概念 179
9.3.2 四大數據庫:MySQL、PostgreSQL、Oracle和SQLite 180
9.3.3 安裝SQLite 180
9.3.4 關於數據庫基本操作和SQL的緊急教程 181
9.3.5 在Ruby中使用SQLite 184
9.3.6 連接其他數據庫係統 188
9.3.7 ActiveRecord簡介 192
9.4 小結 192
第10章 部署Ruby應用和程序庫 194
10.1 簡單Ruby程序發布 194
10.1.1 shebang行 195
10.1.2 關聯Windows的文件類型 196
10.1.3 “編譯”Ruby程序 196
10.2 檢測Ruby運行環境 197
10.2.1 用RUBY_PLATFORM作簡單的操作係統檢測 198
10.2.2 環境變量 198
10.2.3 讀取命令行參數 200
10.3 以gem包形式發布Ruby程序庫 200
10.3.1 創建gem包 201
10.3.2 發布gem包 204
10.3.3 RubyForge網站 204
10.4 以遠程服務形式部署Ruby應用 205
10.4.1 CGI腳本 205
10.4.2 常見HTTP服務器 207
10.4.3 遠程方法調用 210
10.5 小結 214
第11章 Ruby高級功能 216
11.1 動態代碼執行 216
11.1.1 綁定 216
11.1.2 eval的其他形式 217
11.1.3 創建attr_accessor 219
11.2 從Ruby中運行其他程序 220
11.2.1 獲得其他程序的運行結果 220
11.2.2 嚮其他程序移交執行權 221
11.2.3 同時運行兩個程序 221
11.2.4 與另一程序交互 222
11.3 安全地掌控數據和危險方法 222
11.3.1 被感染的數據和對象 223
11.3.2 安全級彆 224
11.4 使用微軟Windows 225
11.4.1 使用Windows API 225
11.4.2 控製Windows程序 227
11.5 綫程 228
11.5.1 基礎Ruby綫程實戰 228
11.5.2 高級綫程操作 229
11.6 其他語言嵌入Ruby 230
11.6.1 為什麼用C作為嵌入語言 231
11.6.2 創建基礎方法或函數 231
11.6.3 性能基準度量:C和Ruby 233
11.7 對Unicode和UTF-8的支持 234
11.8 小結 236
第12章 綜閤演練:開發更大型的Ruby應用 238
12.1 構建機器人小程序 238
12.1.1 什麼是機器人小程序 238
12.1.2 為什麼要構建機器人小程序 239
12.1.3 怎樣構建 239
12.2 創建文本處理工具程序庫 239
12.2.1 構建WordPlay程序庫 240
12.2.2 測試該程序庫 245
12.2.3 WordPlay程序庫的源代碼 247
12.3 構建機器人小程序的核心功能 249
12.3.1 程序的生命周期和組成部分 250
12.3.2 機器人小程序的數據 250
12.3.3 構建Bot類和數據載入器 254
12.3.4 response_to方法 255
12.3.5 試用機器人小程序 259
12.4 機器人小程序主要代碼清單 262
12.4.1 bot.rb文件 263
12.4.2 basic_client.rb文件 265
12.5 擴展機器人小程序的功能 266
12.5.1 用文本文件作為會話來源 266
12.5.2 把機器人小程序連接到萬維網 266
12.5.3 機器人小程序之間的會話 269
12.6 小結 270
第三篇 Ruby在綫
第13章 Ruby on Rails: Ruby的殺手級
應用 271
13.1 第一步 271
13.1.1 Rails是什麼,為什麼要用它 271
13.1.2 安裝Rails 272
13.1.3 數據庫方麵的考慮 273
13.2 構建Rails簡單應用 273
13.2.1 創建Rails空白應用 273
13.2.2 數據庫初始化 277
13.2.3 創建模型和遷移文件 279
13.2.4 搭建腳手架 282
13.2.5 控製器與視圖 285
13.2.6 路由 292
13.2.7 模型間關係 293
13.2.8 會話與過濾器 295
13.3 其他功能特性 296
13.3.1 界麵布局 296
13.3.2 測試 298
13.3.3 插件 299
13.4 參考資料與演示應用 300
13.4.1 參考站點和教程 300
13.4.2 Rails示例應用 300
13.5 小結 301
第14章 Ruby與因特網 302
14.1 HTTP與萬維網 302
14.1.1 下載網頁 302
14.1.2 生成網頁和HTML 309
14.1.3 解析網頁內容 313
14.2 電子郵件 317
14.2.1 用POP3協議接收郵件 317
14.2.2 用SMTP協議發送郵件 319
14.2.3 用ActionMailer發送郵件 320
14.3 用FTP協議傳輸文件 321
14.3.1 FTP連接與基本操作 321
14.3.2 下載文件 323
14.3.3 上傳文件 324
14.4 小結 325
第15章 網絡連接、套接字與後颱進程 326
15.1 網絡連接的概念 326
15.1.1 TCP和UDP協議 326
15.1.2 IP地址和DNS 327
15.2 網絡操作基礎 327
15.2.1 檢查機器和服務是否可用 327
15.2.2 進行DNS查詢 328
15.2.3 直接連接到TCP服務器 330
15.3 服務器和客戶端 332
15.3.1 UDP客戶端和服務器 332
15.3.2 構建簡單的TCP服務器 333
15.3.3 多客戶端TCP服務器 335
15.3.4 GServer程序庫 336
15.3.5 基於GServer的聊天服務器 339
15.3.6 Web/HTTP服務器 341
15.3.7 後颱進程 341
15.4 小結 343
第16章 有用的Ruby程序庫和gem包 344
16.1 abbrev程序庫 344
16.1.1 安裝 344
16.1.2 示例 344
16.1.3 更多信息 345
16.2 base64程序庫 345
16.2.1 安裝 346
16.2.2 示例 346
16.2.3 更多信息 347
16.3 BlueCloth程序庫 348
16.3.1 安裝 348
16.3.2 示例 348
16.3.3 更多信息 349
16.4 cgi程序庫 349
16.4.1 安裝 350
16.4.2 示例 350
16.4.3 更多信息 353
16.5 chronic程序庫 354
16.5.1 安裝 354
16.5.2 示例 354
16.5.3 更多信息 355
16.6 Digest程序庫 355
16.6.1 安裝 355
16.6.2 示例 356
16.6.3 更多信息 357
16.7 English程序庫 357
16.7.1 安裝 357
16.7.2 示例 358
16.7.3 更多信息 359
16.8 ERB程序庫 359
16.8.1 安裝 359
16.8.2 示例 359
16.8.3 更多信息 361
16.9 FasterCSV程序庫 361
16.9.1 安裝 361
16.9.2 示例 362
16.9.3 更多信息 365
16.10 iconv程序庫 366
16.10.1 安裝 366
16.10.2 示例 366
16.10.3 更多信息 367
16.11 logger程序庫 367
16.11.1 安裝 367
16.11.2 示例 367
16.11.3 更多信息 369
16.12 pp程序庫 369
16.12.1 安裝 369
16.12.2 示例 369
16.12.3 更多信息 370
16.13 RedCloth程序庫 371
16.13.1 安裝 371
16.13.2 示例 371
16.13.3 更多信息 372
16.14 StringScanner程序庫 372
16.14.1 安裝 372
16.14.2 示例 373
16.14.3 更多信息 375
16.15 tempfile程序庫 375
16.15.1 安裝 375
16.15.2 示例 375
16.15.3 更多信息 377
16.16 uri程序庫 377
16.16.1 安裝 377
16.16.2 示例 377
16.16.3 更多信息 380
16.17 zlib程序庫 380
16.17.1 安裝 380
16.17.2 示例 380
16.17.3 更多信息 381
附錄
附錄A Ruby入門與迴顧(開發人員專用版)
附錄B Ruby參考速查
附錄C 有用的資源
· · · · · · (
收起)