http://blackanger.blog.51cto.com/140924/355102
1. alias
Ruby里的关键字,用于定义方法或者全局变量的别名。 例子:
在使用的时候,注意原有的方法名在最后位置,用空格分开。
2. alias_method
作用和alias差不多,是Module的一个私有实例方法,只能用于给方法起别名,并且参数只能是字符串或者符号(alias后面跟的直接是方法名,不是字符串也不是符号)。例子:
注意,alias_method的参数必须是字符串或者是符号,并且用逗号分隔。
3.alias_method_chain
ncapsulates the common pattern of:
With this, you simply do:
替我们定义了两个方法:foo_with_feature 和 foo_without_feature <保存原来的foo方法>
def foo_with_feature
在此添加想向foo方法里面写的代码
foo_without_feature 调用一下原来的方法
end
1. alias
Ruby里的关键字,用于定义方法或者全局变量的别名。 例子:
class A
def m1
puts "m1"
end
alias m2 m1
end
=> nil
a = A.new
=> #<A:0xb7ef5234>
a.m1
m1
=> nil
a.m2
m1
=> nil
在使用的时候,注意原有的方法名在最后位置,用空格分开。
2. alias_method
作用和alias差不多,是Module的一个私有实例方法,只能用于给方法起别名,并且参数只能是字符串或者符号(alias后面跟的直接是方法名,不是字符串也不是符号)。例子:
class B
def b
p "b"
end
alias_method :c, :b
end
=> B
b = B.new
=> #<B:0xb7ee75bc>
b.c
"b"
=> nil
b.b
"b"
=> nil
注意,alias_method的参数必须是字符串或者是符号,并且用逗号分隔。
3.alias_method_chain
ncapsulates the common pattern of:
alias_method :foo_without_feature, :foo
alias_method :foo, :foo_with_feature
With this, you simply do:
alias_method_chain :foo, :feature
替我们定义了两个方法:foo_with_feature 和 foo_without_feature <保存原来的foo方法>
def foo_with_feature
在此添加想向foo方法里面写的代码
foo_without_feature 调用一下原来的方法
end