第一部分 Ruby元編程 1
第1章 元這個字眼 3
1.1 鬼城與自由市場 3
1.2 程序員Bob的故事 4
1.3 元編程和Ruby 7
第2章 星期一:對象模型 11
2.1 打開類 11
2.2 類的真相 16
2.3 小測驗:缺失的連接綫 26
2.4 調用方法時發生瞭什麼? 27
2.5 小測驗:混亂的模塊 39
2.6 對象模型小結 42
第3章 星期二:方法 45
3.1 代碼繁復的問題 46
3.2 動態方法 48
3.3 method_missing方法 55
3.4 小測驗:消滅Bug 64
3.5 白闆類 66
3.6 小結 69
第4章 星期三:代碼塊 73
4.1 學習代碼塊 73
4.2 小測驗:Ruby的#符號 75
4.3 代碼塊是閉包 77
4.4 instance_eval方法 84
4.5 可調用對象 88
4.6 編寫領域專屬語言(DSL) 96
4.7 小測驗:改良的DSL 98
4.8 小結 102
第5章 星期四:類定義 105
5.1 揭秘類定義 106
5.2 小測驗:Taboo類 112
5.3 單件方法 113
5.4 單件類 118
5.5 小測驗:模塊的麻煩 129
5.6 方法包裝器 131
5.7 小測驗:打破數學規律 136
5.8 小結 137
第6章 星期五:編寫代碼的代碼 139
6.1 通嚮周末的編程之路 139
6.2 Kernel#eval方法 141
6.3 小測驗:校驗過的屬性(第一步) 150
6.4 小測驗:校驗過的屬性(第二步) 153
6.5 小測驗:校驗過的屬性(第三步) 154
6.6 小測驗:校驗過的屬性(第四步) 156
6.7 鈎子方法 157
6.8 小測驗:校驗過的屬性(第五步) 161
6.9 小結 162
第7章 尾聲 163
第二部分 Rails中的元編程 165
第8章 準備Rails之旅 167
8.1 Ruby on Rails 167
8.2 安裝Rails 168
8.3 Rails源代碼 168
第9章 Active Record的設計 171
9.1 簡短的Active Record示例 171
9.2 Active Record的組成 172
9.3 經驗之談 176
第10章 Active Support的Concern模塊 179
10.1 Concern模塊齣現之前 179
10.2 ActiveSupport::Concern模塊 183
10.3 經驗之談 188
第11章 alias_method_chain方法沉浮錄 189
11.1 alias_method_chain方法的興起 189
11.2 alias_method_chain方法的衰亡 193
11.3 經驗之談 196
第12章 屬性方法的發展 199
12.1 屬性方法實戰 199
12.2 屬性方法的發展史 200
12.3 經驗之談 210
第13章 最後的思考 213
元編程不過是編程 213
第三部分 附錄 215
附錄A 常見慣用法 217
A.1 擬態方法 217
A.2 空指針保護 219
A.3 Self Yield 222
A.4 Symbol#to_proc方法 224
附錄B 領域專屬語言 227
B.1 關於領域專屬語言 227
B.2 內部和外部領域專屬語言 229
B.3 領域專屬語言和元編程 230
附錄C 法術手冊 231
索引 243
· · · · · · (
收起)