李哲 — MAY 13, 2015
语言本身
Ruby语言支持语法级别的系统,框架,甚至语言本身的方法复写,一般叫做元编程(meta programming), 此基础之上还有一些术语为mixin,方法的动态定义,运行时类改写等等,这些技术和机制可以让语言本身就能实 现其他语言需要字节码才能实现的功能,例如探针需要hook HttpRequest
中的request
方法,就可以通过下面的方式实现:
class HttpRequest
def request_new
puts 'before request'
result = request_old
puts 'after request'
result
end
alias_method :request_old, :request
alias_method :request,