Ruby's Forwardable module provides delegation of specified methods to a designated object.
This page has an example.
Define a typical class:
class Foo
def hello
puts "world"
end
end
Define a class that will forward to Foo:
require 'forwardable'
class Bar
extend Forwardable
def_delegators :foo, :hello
def foo
@foo||=Foo.new
end
end
Now create an object and watch it forward to another object:
bar=Bar.new bar.hello => "world"