前言 vii
致谢 ix
引言 xi
“元”这个字眼 xii
关于本书 xix
关于你 xxii
第1部分 Ruby元编程
第1章 星期一:对象模型
1.1 跟Bill在一起的星期一
1.2 打开类
1.3 类的真相
1.4 小测验:缺失的连接线
1.5 调用一个方法时发生了什么
1.6 小测验:混乱的模块
1.7 对象模型小结
第2章 星期二:方法
2.1 一个重复代码的问题
2.2 动态方法
2.3 method_missing()方法
2.4 小测验:狩猎Bug
2.5 关于method_missing()方法的更多内容
第3章 星期三:代码块
3.1 怎样度过驼峰日
3.2 小测验:Ruby的#符号
3.3 闭包
3.4 instance_eval()
3.5 可调用对象
3.6 编写一种领域专属语言
3.7 小测验:更好的领域专属语言
第4章 星期四:类定义
4.1 类定义揭秘
4.2 小测验:Taboo类
4.3 单件方法
4.4 Eigenclass
4.5 小测验:模块的麻烦
4.6 别名
4.7 小测验:打破数学规律
第5章 星期五:编写代码的代码
5.1 带路
5.2 Kernel#eval
5.3 小测验:校验过的属性(第一步)
5.4 小测验:校验过的属性(第二步)
5.5 小测验:校验过的属性(第三步)
5.6 小测验:校验过的属性(第四步)
5.7 钩子方法
5.8 小测验:校验过的属性(第五步)
第6章 尾声
第2部分“Rails中的元编程”
第7章 ActiveRecord的设计
7.1 准备旅程
7.2 ActiveRecord的设计
7.3 经验教训
第8章 深入ActiveRecord
8.1 动态属性
8.2 动态查找器
8.3 经验教训
第9章 安全元编程
9.1 元编程的测试
9.2 化解猴子补丁
9.3 经验教训
第三部分 附录
附录A 常见惯用法
A.1 拟态方法
A.2 空指针保护
A.3 关于方法参数的技巧
A.4 Self Yield
A.5 Symbol#to_proc()方法
附录B 领域专属语言
B.1 关于领域专属语言
B.2 内部和外部领域专属语言
B.3 领域专属语言和元编程
附录C 法术手册
C.1 法术集
附录D 参考书目
索引
^ 收 起