Module: IdentityCache::CacheKeyGeneration::ClassMethods

Defined in:
lib/identity_cache/cache_key_generation.rb

Instance Method Summary collapse

Instance Method Details

#prefixed_rails_cache_keyObject



35
36
37
# File 'lib/identity_cache/cache_key_generation.rb', line 35

def prefixed_rails_cache_key
  "#{rails_cache_key_namespace}blob:#{base_class.name}:#{rails_cache_key_prefix}:"
end

#rails_cache_key(id) ⇒ Object



27
28
29
# File 'lib/identity_cache/cache_key_generation.rb', line 27

def rails_cache_key(id)
  "#{prefixed_rails_cache_key}#{id}"
end

#rails_cache_key_for_attribute_and_fields_and_values(attribute, fields, values, unique) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/identity_cache/cache_key_generation.rb', line 39

def rails_cache_key_for_attribute_and_fields_and_values(attribute, fields, values, unique)
  unique_indicator = unique ? '' : 's' 
  "#{rails_cache_key_namespace}" \
    "attr#{unique_indicator}" \
    ":#{base_class.name}" \
    ":#{attribute}" \
    ":#{rails_cache_string_for_fields_and_values(fields, values)}"
end

#rails_cache_key_namespaceObject



48
49
50
51
# File 'lib/identity_cache/cache_key_generation.rb', line 48

def rails_cache_key_namespace
  ns = IdentityCache.cache_namespace
  ns.is_a?(Proc) ? ns.call(self) : ns
end

#rails_cache_key_prefixObject



31
32
33
# File 'lib/identity_cache/cache_key_generation.rb', line 31

def rails_cache_key_prefix
  @rails_cache_key_prefix ||= IdentityCache::CacheKeyGeneration.denormalized_schema_hash(self)
end