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.20.0'

Class Method Summary collapse

Class Method Details

.cacheObject

CACHE



99
100
101
# File 'lib/artirix_data_models.rb', line 99

def self.cache
  cache_loader.call
end

.cache=(cache) ⇒ Object



121
122
123
# File 'lib/artirix_data_models.rb', line 121

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

.cache_loaderObject



113
114
115
# File 'lib/artirix_data_models.rb', line 113

def self.cache_loader
  @cache_loader ||= default_cache_loader
end

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



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

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



135
136
137
# File 'lib/artirix_data_models.rb', line 135

def self.configuration
  configuration_loader.call
end

.configuration_loaderObject



149
150
151
# File 'lib/artirix_data_models.rb', line 149

def self.configuration_loader
  @configuration_loader ||= default_configuration_loader
end

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



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

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



117
118
119
# File 'lib/artirix_data_models.rb', line 117

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

.default_configuration_loaderObject



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

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



81
82
83
# File 'lib/artirix_data_models.rb', line 81

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

.disable_cacheObject



125
126
127
# File 'lib/artirix_data_models.rb', line 125

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

.disable_loggerObject



89
90
91
# File 'lib/artirix_data_models.rb', line 89

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

.disabled_cacheObject



129
130
131
# File 'lib/artirix_data_models.rb', line 129

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

.disabled_loggerObject



93
94
95
# File 'lib/artirix_data_models.rb', line 93

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

.loggerObject

LOGGER



63
64
65
# File 'lib/artirix_data_models.rb', line 63

def self.logger
  logger_loader.call
end

.logger=(logger) ⇒ Object



85
86
87
# File 'lib/artirix_data_models.rb', line 85

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

.logger_loaderObject



77
78
79
# File 'lib/artirix_data_models.rb', line 77

def self.logger_loader
  @logger_loader ||= default_logger_loader
end

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



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

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