Class: SmartCacheTenant::VersionStore
- Inherits:
-
Object
- Object
- SmartCacheTenant::VersionStore
- Defined in:
- lib/smart_cache_tenant/version_store.rb
Class Method Summary collapse
- .build_key(model_klass, tenant_id = nil) ⇒ Object
- .bump!(model_klass, tenant_id = nil) ⇒ Object
- .current(model_klass, tenant_id = nil) ⇒ Object
- .generate_version ⇒ Object
Class Method Details
.build_key(model_klass, tenant_id = nil) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/smart_cache_tenant/version_store.rb', line 18 def self.build_key(model_klass, tenant_id = nil) database_name = model_klass.connection_db_config.database tenant_column = SmartCacheTenant.config.tenant_column parts = [database_name, 'smart_cache', 'table_version', model_klass.table_name] parts << "#{tenant_column}:#{tenant_id}" if tenant_id.present? && tenant_column.present? parts.join(':').downcase end |
.bump!(model_klass, tenant_id = nil) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/smart_cache_tenant/version_store.rb', line 10 def self.bump!(model_klass, tenant_id = nil) key = build_key(model_klass, tenant_id) new_version = generate_version Rails.cache.write(key, new_version, expires_in: SmartCacheTenant.config.ttl) new_version end |
.current(model_klass, tenant_id = nil) ⇒ Object
5 6 7 8 |
# File 'lib/smart_cache_tenant/version_store.rb', line 5 def self.current(model_klass, tenant_id = nil) key = build_key(model_klass, tenant_id) Rails.cache.fetch(key, expires_in: SmartCacheTenant.config.ttl) { generate_version } end |
.generate_version ⇒ Object
27 28 29 |
# File 'lib/smart_cache_tenant/version_store.rb', line 27 def self.generate_version Time.zone.now.strftime('%d%m%Y%H%M%S%L') end |