|
require 'forwardable'
|
|
|
|
class Delegator; extend Forwardable
|
|
attr_accessor :delegate
|
|
def_delegator :@delegate, :thing, :delegated
|
|
|
|
def initialize
|
|
@delegate = Delegate.new()
|
|
end
|
|
end
|
|
|
|
class Delegate
|
|
def thing
|
|
'Delegate'
|
|
end
|
|
end
|
|
|
|
a = Delegator.new
|
|
puts a.delegated # prints "Delegate"
|