Method: Module#redirect_method
- Defined in:
- lib/core/facets/module/redirect_method.rb
#redirect_method(method_hash) ⇒ Object (private) Also known as: redirect
Redirect methods to other methods. This simply defines methods by the name of a hash key which calls the method with the name of the hash’s value.
class RedirectExample
redirect_method :hi => :hello, :hey => :hello
def hello(name)
"Hello, #{name}."
end
end
e = RedirectExample.new
e.hello("Bob") #=> "Hello, Bob."
e.hi("Bob") #=> "Hello, Bob."
e.hey("Bob") #=> "Hello, Bob."
The above class definition is equivalent to …
class RedirectExample
def hi(*args)
hello(*args)
end
def hey(*args)
hello(*args)
end
def hello
puts "Hello"
end
end
CREDIT: Trans
37 38 39 40 41 |
# File 'lib/core/facets/module/redirect_method.rb', line 37 def redirect_method( method_hash ) method_hash.each do |targ,adv| define_method(targ) { |*args| send(adv,*args) } end end |