module ArtirixDataModels::Model::WithDAO

Attributes

dao[W]

private setter => it can be given on object creation as a named argument, or in ‘_set_properties` method

Public Class Methods

new(dao_registry: nil, dao_registry_loader: nil, **properties) click to toggle source
# File lib/artirix_data_models/model.rb, line 331
def initialize(dao_registry: nil, dao_registry_loader: nil, **properties)
  set_dao_registry_and_loader dao_registry_loader, dao_registry
  _set_properties properties
end

Public Instance Methods

dao() click to toggle source
# File lib/artirix_data_models/model.rb, line 340
def dao
  @dao ||= load_dao
end
model_dao_name() click to toggle source
# File lib/artirix_data_models/model.rb, line 336
def model_dao_name
  dao.model_name
end

Private Instance Methods

load_dao() click to toggle source
# File lib/artirix_data_models/model.rb, line 349
def load_dao
  key = self.class.dao_name
  raise UndefinedDAOError, "`dao_name` not defined for #{self.class}" unless key.present?
  dao_registry.get(key)
end