本系列翻译自 Metaprogramming in Ruby 站点上的课程笔记,并加入了我(DeathKing)的一些个人演绎、资料补充等。希望对大家有所帮助。
该课程由Satoshi Asakawa讲授,使用ruby 1.9.1p243 [i386-mingw32]。而我的测试环境则是ruby 1.9.2p180 [i386-mingw32]。
出于使得内容更加充实且读者可以从不同的角度来认识元编程,本文在未经原作者的允许下引用了大量的网络资源,虽然保留了出处,但还是多有冒犯。若有不周之处,欢迎告知。
- 0.0 序言
- 0.1 翻译的动机
- 0.2 元编程概览
- 0.3 一点技术上的细节
- 0.4 更多的参考资料
- 1.0 Ruby元编程
-
1.1 实例方法、方法、类
- 1.1.1 对象的实例变量及方法
- 1.1.2 类
- 1.1.3 类是开放的
- 1.1.4 多层次的initialize()方法
- 1.1.5 匿名类
- 1.1.6
-
1.2 方法的调用
- 1.2.1 方法的查找
- 1.2.2 伪变量self
-
1.3 实用元编程方法
- 1.3.1 内省、反射
- 1.3.2 send
- 1.3.3 define_method
- 1.3.4 method_missing
- 1.3.5 remove_method和undef_method
- 1.3.6 eval
-
1.3.7 instance_eval,module_eval,class_eval
- instance_eval
- module_eval,class_eval
- 1.3.8 class_variable_get,class_variable_set
- 1.3.9 class_variable
- 1.3.10 instance_variable_get,instance_variable_set
- 1.3.11 const_get,const_set
-
1.6 元编程实战
-
1.6.1 问题1
- 1.6.1.1 现存的问题和方法
- 1.6.1.2 常规做法
- 1.6.1.3 使用Class.new和define_method的解决方法
- 1.6.2 问题2
-
1.6.1 问题1