$alias_acount = 0
def Object.amend(method_name, &amendment)
$__alias_acount += 1
class_eval %{
@@__al__proc#{$__alias_acount} = amendment
alias __al__method#{$__alias_acount} #{method_name}
def #{method_name}
__al__method#{$__alias_acount}
@@__al__proc #{$__alias_acount}.call
end
}
end
例子
class A
def method
end
end
A.amend(:method) {
p "くくく
く く……"
}
A.amend(:method) {
p "kerokerokero……"
}
A.amend(:method) {
p "ohohohoho……"
}
A.new.method
eval真是神器呀,你看懂了麼?