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