《RUBY COOKBOOK 中文版》是2007年清華大學出版社出版的圖書,作者是Lucas Carlson,Leonard Richardson。
基本介紹
- 書名:RUBY COOKBOOK 中文版
- 作者: (美)Lucas Carlson Leonard Richardson
- 原版名稱:Ruby Cookbook
- 譯者:鄭路長
- ISBN:9787302147701
- 頁數:901
- 出版社:清華大學出版社
- 出版時間:2007 年4月
- 開本:16
- 叢書名:O'REILLY圖書系列
內容簡介,作者簡介,目錄,
內容簡介
你想讓ruby的能力發軍到極限嗎?ruby cookbook是針對今天最熱門的程式語言的最全面的問題求解指南。它為真實世界的問題提供了上百種解決方案,並帶有清楚的解釋和上千行可用於用戶自己項目中的代碼。從數據結構和算法到對最前沿技術的集成,本書可適用於每位程式設計師。初學者與高級ruby程式設計師同樣能學到如何使用下列內容進行編程:
● 字元串和數字
● 資料庫
● 數組和哈希表
● 圖像
● 類、模組和命名空間
● 網際網路服務,如電子郵件、ssh和bittorrent
● 反射機制和元編程(metaprogramming)
● xml和html檔案處理
● 多任務
● ruby on rails (包括ajax 集成)
● 圖形界面和終端界面
如果你需要一個網路應用程式,那么本書可向你展示如何使用rails來開始進行開發。如果你需要重命名數以千計的檔案,那么你會看到如何使用ruby來完成諸如此類的日常任務。你將學習如何讀寫excel電子數據檔案,如何使用bayesian過濾器進行文本歸類,以及如何創建pdf檔案。甚至本書還將介紹一些冒傻氣的把戲,比如如何讓你的鍵盤燈閃爍。
ruby cookbook是目前編寫有關ruby 的最有用的一本。當你需要解決個問題時,不要從頭開始,可在本書中查找。
作者簡介
Lucas Carlson是一個專業Ruby程式設計師,專長Rails Web 開發。他已經負責編寫了6個庫,同時為很多其他庫做出了貢獻,其中包括Rails和RedCloth。他住在俄勒岡州波特蘭市。
目錄
前言 1
第1章字元串 13
1.1 根據部分構建字元串 16
1.2 將變數代入字元串 18
1.3 將變數代入現有的字元串 20
1.4 按字或字元逆轉字元串 22
1.5 表示不可列印字元 23
1.6 字元與值的相互轉換 26
1.7 字元串與符號之間的相互轉換 27
1.8 每次處理字元串中的一個字元 28
1.9 每次處理字元串中的一個字 30
1.10 修改字元串的大小寫 32
1.11 管理空白 34
1.12 測試對象是否類似於字元串 35
1.13 獲得想要的字元串部分 36
1.14 處理國際編碼 38
1.15 帶自動換行的文本 39
1.16 生成字元串的後繼 41
1.17 使用正則表達式匹配字元串 44
1.18 一遍替換多種模式 46
1.19 驗證電子信箱地址 47
1.20 使用貝葉斯分析器對文本進行分類 50
第2章數字 53
2.1 由字元串分析數字 54
2.2 浮點數的比較 57
2.3 表示數字至任意精度 59
2.4 有理數的表示 62
2.5 隨機數的生成 64
2.6 數字基之間的轉換 66
2.7 獲取對數 67
2.8 確定平均數、中值和模 69
2.9 度數與弧度之間的轉換 72
2.10 矩陣乘法 74
2.11 求解線性方程組 79
2.12 複數的使用 81
2.13 模擬Fixnum的子類 84
2.14 使用羅馬數字進行數學運算 88
2.15 生成數字序列 93
2.16 生成素數 96
2.17 檢查信用卡校驗和 99
第3章日期與時間 102
3.1 查找當前日期 105
3.2 精確或模糊地分析日期 108
3.3 列印日期 111
3.4 日期上的疊代 117
3.5 計算日期 119
3.6 從任意日期開始計算天數 121
3.7 時區轉換 123
3.8 檢查夏令時是否起效 126
3.9 Time與DateTime對象之間的轉換 127
3.10 查找周日期 130
3.11 處理商用日期 132
3.12 周期性運行代碼塊 133
3.13 等待固定長度的時間 135
3.14 為長期運行的操作添加逾時 138
第4章數組 140
4.1 在數組上疊代 142
4.2 不使用臨時變數重排值 146
4.3 去除數組中的重複元素 148
4.4 逆轉數組 149
4.5 數組排序 150
4.6 排序字元串時忽略大小寫 152
4.7 確保已排序數組保持有序 153
4.8 數組項求和 158
4.9 按出現率排序數組 159
4.10 打亂數組 161
4.11 獲取數組的N個最小項 163
4.12 使用Injection構建散列 165
4.13 提取部分數組 167
4.14 在數組上處理集合運算 170
4.15 集合劃分或分類 173
第5章散列 177
5.1 使用符號作為散列鍵 179
5.2 創建帶默認值的散列 181
5.3 向散列添加元素 182
5.4 從散列中去除元素 185
5.5 使用數組或其他可修改對象作為散列鍵 186
5.6 為相同散列鍵保持重複值 188
5.7 在散列上疊代 190
5.8 按插入順序在散列上疊代 192
5.9 散列列印 193
5.10 反轉散列 196
5.11 隨機選擇加權列表 197
5.12 構建柱狀圖 200
5.13 重新映射散列的鍵與值 202
5.14 提取部分散列 203
5.15 使用正則表達式搜尋散列 204
第6章檔案與目錄 206
6.1 檢查檔案是否存在 209
6.2 檢查對檔案的訪問 210
6.3 更改檔案許可權 212
6.4 查看上次使用檔案的時間 216
6.5 目錄清單 217
6.6 讀取檔案內容 220
6.7 寫檔案 224
6.8 寫臨時檔案 225
6.9 從檔案中挑選隨機行 227
6.10 比較兩個檔案 228
6.11 在“唯讀一次”輸入流上執行隨機訪問 232
6.12 遍歷目錄樹 234
6.13 檔案加鎖 237
6.14 備份至帶版本號的檔案名稱 240
6.15 偽裝字元串為檔案 242
6.16 重定向標準輸出或輸出 245
6.17 處理二進制檔案 247
6.18 刪除檔案 251
6.19 截短檔案 252
6.20 查找所需檔案 253
6.21 查找並修改當前工作目錄 255
第7章代碼塊與疊代 257
7.1 代碼塊的創建與調用 260
7.2 編寫接收代碼塊的方法 262
7.3 將代碼塊參數與變數綁定 264
7.4 作為閉包的代碼塊:在代碼塊內使用外部變數 267
7.5 在數據結構上編寫疊代器 268
7.6 更改對象的疊代方式 271
7.7 編寫分類或收集的代碼塊方法 273
7.8 停止疊代 275
7.9 並行地在多個疊代變數上循環 277
7.10 隱藏塊方法中的設定與清除 281
7.11 使用回調的松耦合系統 284
第8章對象與類 288
8.1 管理實例數據 290
8.2 管理類數據 293
8.3 檢查類或模組的成員 296
8.4 編寫一個繼承類 298
8.5 方法重載 300
8.6 驗證並修改屬性值 302
8.7 定義虛屬性 304
8.8 授權對另一對象的方法調用 305
8.9 對象到不同類型的轉換與強制轉換 308
8.10 從任意對象獲取人類可讀的列印輸出 312
8.11 接收或傳遞參數的變數數目 315
8.12 模擬關鍵字參數 317
8.13 調用超類的方法 319
8.14 創建抽象方法 321
8.15 凍結對象以防修改 324
8.16 生成對象的副本 326
8.17 聲明常量 329
8.18 實現類方法和singleton方法 331
8.19 通過私有化方法控制訪問 333
第9章模組與命名空間 337
9.1 使用混入模擬多重繼承 337
9.2 使用模組擴展特定對象 341
9.3 混用類方法 343
9.4 實現Enumerable:編寫一個方法,獲得22種免費方法 345
9.5 使用命名空間避免名字衝突 347
9.6 按需自動載入庫 349
9.7 包括命名空間 351
9.8 初始化模組定義的實例變數 352
9.9 自動初始化混合插入的模組 353
第10章反射與元編程 357
10.1 查找對象的類和超類 358
10.2 列出對象的方法 359
10.3 列出對象獨有的方法 362
10.4 獲得方法的引用 363
10.5 修正別人類中的錯誤 365
10.6 偵聽類的變化 367
10.7 檢查對象是否具有必需的屬性 369
10.8 回響對未定義方法的調用 371
10.9 自動初始化實例變數 375
10.10 使用元編程避免刻板代碼 377
10.11 帶字元串計算的元編程 379
10.12 計算早先上下文中的代碼 382
10.13 取消定義方法 383
10.14 為方法起別名 386
10.15 面向方面的編程 389
10.16 強制實施軟體契約 391
第11章XML和HTML 396
11.1 檢查XML的良構性 397
11.2 從文檔的樹結構中提取數據 399
11.3 解析文檔時提取數據 401
11.4 使用XPath導航文檔 403
11.5 解析不合法標記 405
11.6 將一個XML文檔轉換為一個散列 408
11.7 驗證XML文檔 411
11.8 取代XML實體 414
11.9 創建並修改XML文檔 417
11.10 壓縮XML文檔中的空白 420
11.11 猜解文檔的編碼 422
11.12 從一種編碼轉換為另一種編碼 423
11.13 從HTML文檔中提取所有URL 424
11.14 將純文本轉換為HTML 428
11.15 將HTML文檔從Web轉換為文本 429
11.16 一個簡單的提要聚合器 432
第12章圖形與其他檔案格式 437
12.1 縮略圖形 437
12.2 向圖形中添加文本 440
12.3 將一個圖形格式轉換為另一種 443
12.4 用圖表示數據 446
12.5 使用Sparkline添加圖形化上下文 449
12.6 強加密數據 453
12.7 解析逗號分隔的數據 455
12.8 解析非完全逗號分隔的數據 457
12.9 生成並分析Excel電子數據表 459
12.10 使用Gzip和Tar壓縮並存檔檔案 462
12.11 讀寫ZIP檔案 465
12.12 讀寫配置檔案 467
12.13 生成PDF檔案 468
12.14 將數據表示為MIDI音樂 473
第13章資料庫和持久性 477
13.1 用YAML串列化數據 480
13.2 用Marshal串列化數據 484
13.3 用Madeleine保持對象 485
13.4 用SimpleSearch索引結構化文本 488
13.5 用Ferret索引結構化文本 490
13.6 使用BerkeleyDB資料庫 493
13.7 在Unix上控制MySQL 495
13.8 找到查詢返回的行數 496
13.9 與MySQL資料庫直接對話 499
13.10 和PostgreSQL資料庫直接對話 501
13.11 用ActiveRecord使用對象相關映射 504
13.12 使用對象相關映射Og 508
13.13 以編程方式構建查詢 512
13.14 用ActiveRecord確認數據 516
13.15 阻止SQL注入攻擊 519
13.16 在ActiveRecord里使用交易 522
13.17 添加掛鈎程式到表事件中 524
13.18 用資料庫Minxin添加標籤 526
第14章Internet服務 531
14.1 抓取Web頁面的內容 532
14.2 傳送HTTPSWeb請求 534
14.3 自定義HTTP的請求頭檔案 536
14.4 執行DNS查詢 539
14.5 傳送郵件 541
14.6 用IMAP閱讀郵件 545
14.7 用POP3閱讀郵件 549
14.8 作為FTP客戶端 552
14.9 作為Telnet客戶端 554
14.10 作為SSH客戶端 558
14.11 複製檔案到其他機器 560
14.12 作為BitTorrent客戶端 561
14.13 ping機器 564
14.14 編寫Internet伺服器 565
14.15 分析URL 567
14.16 編寫CGI腳本 570
14.17 設定cookie和其他HTTP回響頭檔案 573
14.18 用CGI處理檔案上傳 575
14.19 用WEBrick運行servlet 578
14.20 真實世界的HTTP客戶端 584
第15章Web開發:RubyonRails 588
15.1 編寫簡單的Rails應用程式顯示系統狀態 590
15.2從控制器傳遞數據到視圖 593
15.3 創建頁眉和頁腳的布局 596
15.4 重新定位不同的位置 599
15.5 用render顯示模板 601
15.6 集成資料庫到Rails應用程式中 604
15.7 理解複數規則 607
15.8 創建登錄系統 609
15.9 保存散列化的用戶密碼到資料庫中 613
15.10 轉義顯示用的HTML和JavaScript 615
15.11 設定並找回會話信息 616
15.12 設定並找回Cookie 619
15.13 提取代碼到輔助函式中 621
15.14 重構視圖為視圖的部分片斷 623
15.15 用script.aculo.us添加DHTML效果 627
15.16 生成操作模型對象的表格 629
15.17 創建Ajax表格 633
15.18 在Web站點上發布Web服務 636
15.19 用Rails傳送郵件 639
15.20 自動傳送錯誤信息到信箱 641
15.21 文檔化Web站點 643
15.22 Web站點的單元測試 645
15.23 在Web應用程式中使用斷點 648
第16章Web服務及分散式編程 652
16.1 搜尋Amazon上的書 653
16.2 找到Flickr上的照片 656
16.3 編寫XML-RPC客戶端 659
16.4 編寫SOAP客戶端 662
16.5 編寫SOAP伺服器 663
16.6 用Google的SOAP服務搜尋Web 665
16.7 使用WSDL檔案更簡單地構建SOAP調用 667
16.8 用信用卡支付 669
16.9 通過UPS或FedEx找到裝運包的費用 671
16.10 在任意數目的計算機間共享散列 672
16.11 實現分散式查詢 676
16.12 創建共享的“白板” 678
16.13 通過訪問控制列表保障DRb服務的安全 682
16.14 通過Rinda自動發現DRb服務 683
16.15 代理無法分布的對象 685
16.16 用MemCached在分散式RAM上保存數據 688
16.17 用MemCached高速快取重要結果 690
16.18 遠程控制的Jukebox 694
第17章測試、調試、最佳化以及文檔化 700
17.1 只在調試模式下運行代碼 701
17.2 發出異常 703
17.3 處理異常 705
17.4 在異常後重新運行 707
17.5 添加日誌到應用程式中 709
17.6 創建並理解Traceback 711
17.7 編寫單元測試 714
17.8 運行單元測試 717
17.9 測試使用外部資源的代碼 720
17.10 使用斷點審查並改變應用程式的狀態 724
17.11 文檔化應用程式 727
17.12 記錄應用程式 731
17.13 Benchmark競爭性解決方案 734
17.14 一次運行多個分析工具 736
17.15 誰調用了該方法?調用圖形分析器 738
第18章打包和發布軟體 741
18.1 通過查詢gem知識庫尋找庫 742
18.2 安裝並使用gem 745
18.3 要求gem的某個特定版本 748
18.4 卸載gem 751
18.5 為已安裝的gem讀入文檔 752
18.6 打包代碼為gem 754
18.7 發布gem 757
18.8 用setup.rb安裝並創建獨立Ruby程式包 760
第19章用Rake自動執行任務 763
19.1 自動運行單元測試 765
19.3 清除生成的檔案 770
19.4 自動構建gem 771
19.5 收集代碼的統計信息 773
19.6 發布文檔 776
19.7 並行運行多個任務 778
19.8 通用的項目Rakefile 779
第20章多任務和多執行緒 787
20.1 在Unix上運行守護進程 788
20.2 創建Windows服務 791
20.3 用執行緒一次做兩件事情 795
20.4 同步訪問一個對象 797
20.5 中止執行緒 800
20.6 在很多對象上同時運行代碼塊 802
20.7 用執行緒池限制多執行緒 805
20.8 用popen驅動外部進程 808
20.9 通過Unixshell命令抓取輸出和錯誤流 810
20.10 控制其他機器上的進程 811
20.11 避免死鎖 812
第21章用戶界面 816
21.1 一次得到輸入中的一行 817
21.2 一次得到輸入的一個字元 819
21.3 分析命令行參數 822
21.4 測試程式是否互動運行 825
21.5 設定和卸載Curses程式 825
21.6 清空螢幕 828
21.7 決定終端大小 829
21.8 改變文本的顏色 831
21.9 讀入密碼 834
21.10 允許用Readline編輯輸入 835
21.11 使得鍵盤指示燈閃爍 836
21.12 用Tk創建一個GUI應用程式 839
21.13用wxRuby創建一個GUI應用程式 843
21.14 用Ruby/GTK創建一個GUI應用程式 847
21.15 用RubyCocoa創建一個MacOSX應用程式 851
21.16 用AppleScript得到用戶輸入 859
第22章用其他語言擴展Ruby 861
22.1 為Ruby編寫C擴展程式 862
22.2 在Ruby中使用C庫 865
22.3 通過SWIG調用C庫 869
22.4 通過SWIG調用C庫 871
22.5 用JRuby使用Java庫 874
第23章系統管理 878
23.1 腳本化外部程式 879
23.2 管理Windows服務 880
23.3 作為另一個用戶運行代碼 882
23.4 不用cron或at運行周期性任務 884
23.5 刪除匹配正則表達式的檔案 885
23.6 批量重命名檔案 888
23.7 找到複製的檔案 891
23.8 自動備份 894
23.9 在用戶目錄下規範化所有權和許可權 895