Skip to content

Instantly share code, notes, and snippets.

@rwjblue
Created November 8, 2012 17:57
Show Gist options
  • Save rwjblue/4040406 to your computer and use it in GitHub Desktop.
Save rwjblue/4040406 to your computer and use it in GitHub Desktop.
Forwardable Example
require 'forwardable'
class Supervisor
def email
'blah'
end
def first_name
'Jon'
end
def last_name
'Jackson'
end
end
class Project
extend Forwardable
attr_accessor :supervisor
def_delegator :supervisor, :email, :supervisor_email
def_delegator :supervisor, :last_name, :supervisor_last_name
def_delegator :supervisor, :first_name, :supervisor_first_name
end
p = Project.new
p.supervisor = Supervisor.new
puts p.supervisor_email
puts p.supervisor_last_name
puts p.supervisor_first_name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment