class DataProvider::Base
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/data_provider/base.rb, line 15 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/data_provider/base.rb, line 25 def storage_from(controller) controller.instance_variable_set(:@data_providers, {}) unless controller.instance_variable_names.include?('@data_providers') controller.instance_variable_get(:@data_providers) end
Public Instance Methods
data_providers()
click to toggle source
Получаем хранилище провайдеров
@return [Hash]
# File lib/data_provider/base.rb, line 35 def data_providers @data_providers.present? ? @data_providers : self.class.storage_from(controller) end
inspect()
click to toggle source
# File lib/data_provider/base.rb, line 39 def inspect "#<#{self.class.name}:#{self.object_id} @controller=#<#{controller.class.name}:#{controller.object_id}>>" end