lib/rectify/controller_helpers.rb
module Rectify module ControllerHelpers def self.included(base_class) base_class.helper_method(:presenter) end def present(presenter, options = {}) presenter_type = options.fetch(:for) { :template } presenter.attach_controller(self) rectify_presenters[presenter_type] = presenter end def presenter(presenter_type = :template) rectify_presenters[presenter_type] end def expose(presentation_data) presentation_data.each do |attribute, value| if presenter.respond_to?("#{attribute}=") presenter.public_send("#{attribute}=", value) else instance_variable_set("@#{attribute}", value) end end end private def rectify_presenters @rectify_presenters ||= {} end end end