Skip to content

Instantly share code, notes, and snippets.

@regedarek
Forked from tomas-stefano/presenter.rb
Created February 23, 2014 21:37
Show Gist options
  • Save regedarek/9177668 to your computer and use it in GitHub Desktop.
Save regedarek/9177668 to your computer and use it in GitHub Desktop.
require 'delegate'
module Presenter
def presenter
presenter = "#{self.class.name}Presenter".constantize
presenter.new(self)
end
# Example of usage:
#
# class PersonPresenter < Presenter::Proxy
# def full_name
# "#{last_name}, #{first_name}"
# end
# end
#
# person = Person.new(:first_name => "Gabriel", :last_name => "Sobrinho")
# person.presenter.full_name #=> "Sobrinho, Gabriel"
class Proxy < SimpleDelegator
end
end
class ActiveRecord::Base
include Presenter
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment