class UberPresenter::Base
class UberPresenter::PresenterFactory
Attributes
controller[R]
Доступ к объекту контроллера
Public Class Methods
new(controller, *args)
click to toggle source
Создаем экземпляр презенера, уникальный для объекта controller
@param [Object] controller @param [Object] args Набор аргументов для презентора @return [Object] Экземпляр презентера
Calls superclass method
# File lib/uber_presenter/base.rb, line 16 def new(controller, *args) storage = storage_from(controller) (instance = storage[self.name]).present? ? instance : (storage[self.name] = super(*args)).tap { |inst| inst.instance_variable_set(:@controller, controller) } end
storage_from(controller)
click to toggle source
Получаем хранилище презенторов из контроллера controller
@param [Object] controller @return [Hash]
# File lib/uber_presenter/base.rb, line 26 def storage_from(controller) controller.instance_variable_set(:@presenters, {}) unless controller.instance_variable_names.include?('@presenters') controller.instance_variable_get(:@presenters) end
Public Instance Methods
inspect()
click to toggle source
# File lib/uber_presenter/base.rb, line 40 def inspect "#<#{self.class.name}:#{self.object_id} @controller=#<#{controller.class.name}:#{controller.object_id}>>" end
presenters()
click to toggle source
Получаем хранилище презенторов
@return [Hash]
# File lib/uber_presenter/base.rb, line 36 def presenters @presenters.present? ? @presenters : self.class.storage_from(controller) end