Module: ArtirixDataModels

Defined in:
lib/artirix_data_models/model.rb,
lib/artirix_data_models.rb,
lib/artirix_data_models/dao.rb,
lib/artirix_data_models/version.rb,
lib/artirix_data_models/active_null.rb,
lib/artirix_data_models/aggregation.rb,
lib/artirix_data_models/inspectable.rb,
lib/artirix_data_models/es_collection.rb,
lib/artirix_data_models/aggregation_builder.rb,
lib/artirix_data_models/aggregations_factory.rb,
lib/artirix_data_models/raw_aggregation_data_normaliser.rb,
lib/artirix_data_models/dao_concerns/with_response_adaptors.rb

Overview

Responsibilities

  1. ActiveModel compliant (to_param, valid?, saveā€¦)

  2. Attributes (on initialise, getters and private setters)

  3. Automatic timestamp attribute attributes definition (_timestamp)

  4. Definition of Primary Key

  5. Cache key (calculation of cache key based on minimum information)

  6. Partial mode (reload, automatic reload when accessing an unavailable attribute)

6.1 partial mode - Reload with new data hash
6.2 partial mode - Check if in partial mode or in full mode
6.3 partial mode - reload using DAO
  1. Rails Model Param based on Primary Key (for URLs and such)

Defined Under Namespace

Modules: ActiveNull, CacheService, DAO, DAOConcerns, GatewayResponseAdaptors, Inspectable, Model Classes: Aggregation, AggregationBuilder, AggregationsFactory, BasicModelDAO, CachedActionAdaptor, CommonAggregation, ConfigurationNeededError, DAORegistry, DataGateway, EsCollection, FakeResponseFactory, IllegalActionError, MetricAggregation, ModelFieldsDAO, RawAggregationDataNormaliser

Constant Summary collapse

DisabledLogger =

internal Classes

Naught.build do |config|
  config.black_hole
end
DisabledCache =
Naught.build do |config|
  config.black_hole

  def enabled?
    false
  end

  def exist?(*)
    false
  end

  def write(cache_key, value, *_)
    value
  end
end
VERSION =
'0.21.1'

Class Method Summary collapse

Class Method Details

.cacheObject

CACHE



101
102
103
# File 'lib/artirix_data_models.rb', line 101

def self.cache
  cache_loader.call
end

.cache=(cache) ⇒ Object



123
124
125
# File 'lib/artirix_data_models.rb', line 123

def self.cache=(cache)
  @cache_loader = -> { cache }
end

.cache_loaderObject



115
116
117
# File 'lib/artirix_data_models.rb', line 115

def self.cache_loader
  @cache_loader ||= default_cache_loader
end

.cache_loader=(loader = nil, &block) ⇒ Object



105
106
107
108
109
110
111
112
113
# File 'lib/artirix_data_models.rb', line 105

def self.cache_loader=(loader=nil, &block)
  if block_given?
    @cache_loader = block
  elsif loader.present? && loader.respond_to?(:call)
    @cache_loader = loader
  else
    raise 'no block or callable object given as a loader'
  end
end

.configurationObject

CONFIGURATION



137
138
139
# File 'lib/artirix_data_models.rb', line 137

def self.configuration
  configuration_loader.call
end

.configuration_loaderObject



151
152
153
# File 'lib/artirix_data_models.rb', line 151

def self.configuration_loader
  @configuration_loader ||= default_configuration_loader
end

.configuration_loader=(loader = nil, &block) ⇒ Object



141
142
143
144
145
146
147
148
149
# File 'lib/artirix_data_models.rb', line 141

def self.configuration_loader=(loader=nil, &block)
  if block_given?
    @configuration_loader = block
  elsif loader.present? && loader.respond_to?(:call)
    @configuration_loader = loader
  else
    raise 'no block or callable object given as a loader'
  end
end

.default_cache_loaderObject



119
120
121
# File 'lib/artirix_data_models.rb', line 119

def self.default_cache_loader
  lambda { defined?(Rails) ? Rails.cache : disabled_cache }
end

.default_configuration_loaderObject



155
156
157
158
159
160
161
162
163
164
165
# File 'lib/artirix_data_models.rb', line 155

def self.default_configuration_loader
  lambda do
    if defined?(Rails) && Rails.configuration.try(:x) && Rails.configuration.x.artirix_data_models.present?
      Rails.configuration.x.artirix_data_models
    elsif defined?(SimpleConfig)
      SimpleConfig.for(:site)
    else
      raise ConfigurationNeededError, 'Rails.configuration.x.artirix_data_models not available, and SimpleConfig.for(:site) not available'
    end
  end
end

.default_logger_loaderObject



83
84
85
# File 'lib/artirix_data_models.rb', line 83

def self.default_logger_loader
  lambda { defined?(Rails) ? Rails.logger : disabled_logger }
end

.disable_cacheObject



127
128
129
# File 'lib/artirix_data_models.rb', line 127

def self.disable_cache
  @cache_loader = -> { disabled_cache }
end

.disable_loggerObject



91
92
93
# File 'lib/artirix_data_models.rb', line 91

def self.disable_logger
  @logger_loader = -> { disabled_logger }
end

.disabled_cacheObject



131
132
133
# File 'lib/artirix_data_models.rb', line 131

def self.disabled_cache
  @disabled_cache ||= DisabledCache.new
end

.disabled_loggerObject



95
96
97
# File 'lib/artirix_data_models.rb', line 95

def self.disabled_logger
  @disabled_logger ||= DisabledLogger.new
end

.loggerObject

LOGGER



65
66
67
# File 'lib/artirix_data_models.rb', line 65

def self.logger
  logger_loader.call
end

.logger=(logger) ⇒ Object



87
88
89
# File 'lib/artirix_data_models.rb', line 87

def self.logger=(logger)
  @logger_loader = -> { logger }
end

.logger_loaderObject



79
80
81
# File 'lib/artirix_data_models.rb', line 79

def self.logger_loader
  @logger_loader ||= default_logger_loader
end

.logger_loader=(loader = nil, &block) ⇒ Object



69
70
71
72
73
74
75
76
77
# File 'lib/artirix_data_models.rb', line 69

def self.logger_loader=(loader=nil, &block)
  if block_given?
    @logger_loader = block
  elsif loader.present? && loader.respond_to?(:call)
    @logger_loader = loader
  else
    raise 'no block or callable object given as a loader'
  end
end