Method: Module#redefine_method
- Defined in:
- lib/core/facets/module/redefine_method.rb
#redefine_method(sym, aka = nil, &blk) ⇒ Object (private) Also known as: redef
Creates a new method for a pre-existing method.
If aka is given, then the method being redefined will first be aliased to this name.
class Greeter
def hello ; "Hello" ; end
end
Greeter.new.hello #=> "Hello"
class Greeter
redefine_method( :hello, :hi ) do
hi + ", friend!"
end
end
Greeter.new.hello #=> "Hello, friend!"
CREDIT: Trans
26 27 28 29 30 31 32 |
# File 'lib/core/facets/module/redefine_method.rb', line 26 def redefine_method(sym, aka=nil, &blk) alias_method(aka, sym) if aka ## prevent warning about method overwrite begin remove_method(sym) rescue NameError end ## define replacelemt method define_method(sym, &blk) end |