Module: ArtirixDataModels::WithDAORegistry

Included in:
AggregationsFactory, BasicModelDAO, CommonAggregation, DAORegistry::IdentityMap, EsCollection, ModelFieldsDAO
Defined in:
lib/artirix_data_models/with_dao_registry.rb

Constant Summary collapse

DEFAULT_DAO_REGISTRY_LOADER =
->() { ArtirixDataModels::DAORegistry.instance }

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dao_registry_loaderObject



23
24
25
# File 'lib/artirix_data_models/with_dao_registry.rb', line 23

def dao_registry_loader
  @dao_registry_loader || DEFAULT_DAO_REGISTRY_LOADER
end

Class Method Details

.loader_or_registry_or_default(dao_registry: nil, dao_registry_loader: nil) ⇒ Object

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
14
# File 'lib/artirix_data_models/with_dao_registry.rb', line 4

def self.loader_or_registry_or_default(dao_registry: nil, dao_registry_loader: nil)
  raise ArgumentError, 'loader has to respond to :call' if dao_registry_loader.present? && !dao_registry_loader.respond_to?(:call)

  if dao_registry_loader.respond_to? :call
    dao_registry_loader.call
  elsif dao_registry
    dao_registry
  else
    DEFAULT_DAO_REGISTRY_LOADER.call
  end
end

Instance Method Details

#dao_registryObject

set_xxx* methods can be chained (return self) xxx= methods return the value set



19
20
21
# File 'lib/artirix_data_models/with_dao_registry.rb', line 19

def dao_registry
  dao_registry_loader.call
end

#dao_registry=(dao_registry) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/artirix_data_models/with_dao_registry.rb', line 34

def dao_registry=(dao_registry)
  if dao_registry
    set_dao_registry_loader ->() { dao_registry }
  else
    set_default_dao_registry_loader
  end

  dao_registry
end

#default_dao_registryObject



49
50
51
# File 'lib/artirix_data_models/with_dao_registry.rb', line 49

def default_dao_registry
  DEFAULT_DAO_REGISTRY_LOADER.call
end

#set_dao_registry(dao_registry) ⇒ Object



44
45
46
47
# File 'lib/artirix_data_models/with_dao_registry.rb', line 44

def set_dao_registry(dao_registry)
  self.dao_registry = dao_registry
  self
end

#set_dao_registry_and_loader(dao_registry_loader, dao_registry) ⇒ Object

will use the loader if present, if not it will use the registry, if not present it will do nothing.

Raises:

  • (ArgumentError)


61
62
63
64
65
66
67
68
69
70
71
# File 'lib/artirix_data_models/with_dao_registry.rb', line 61

def set_dao_registry_and_loader(dao_registry_loader, dao_registry)
  raise ArgumentError, 'loader has to respond to :call' if dao_registry_loader.present? && !dao_registry_loader.respond_to?(:call)

  if dao_registry_loader.respond_to? :call
    set_dao_registry_loader dao_registry_loader
  elsif dao_registry
    set_dao_registry dao_registry
  end

  self
end

#set_dao_registry_loader(dao_registry_loader) ⇒ Object



29
30
31
32
# File 'lib/artirix_data_models/with_dao_registry.rb', line 29

def set_dao_registry_loader(dao_registry_loader)
  self.dao_registry_loader = dao_registry_loader
  self
end

#set_default_dao_registry_loaderObject Also known as: set_default_dao_registry



53
54
55
56
# File 'lib/artirix_data_models/with_dao_registry.rb', line 53

def set_default_dao_registry_loader
  @dao_registry_loader = nil
  self
end