module Cacheable::Keys::InstanceKeys

Public Instance Methods

base_class_or_name(name) click to toggle source

If it isa class. It should be the base_class name else it should just be a name tableized

# File lib/cacheable/keys.rb, line 64
def base_class_or_name(name)
  name = begin
    name.capitalize.constantize.base_class.name
  rescue NameError # uninitialized constant
    name
  end
  name.tableize
end
belong_association_cache_key(name, polymorphic=nil) click to toggle source

Returns nil if association cannot be qualified

# File lib/cacheable/keys.rb, line 47
def belong_association_cache_key(name, polymorphic=nil)
  name = name.to_s if name.is_a?(Symbol)

  if polymorphic && self.respond_to?(:"#{name}_type")
    return nil unless self.send(:"#{name}_type").present?
    "#{base_class_or_name(self.send(:"#{name}_type"))}/#{self.send(:"#{name}_id")}"
  else
    "#{base_class_or_name(name)}/#{self.send(:"#{name}_id")}"
  end
end
have_association_cache_key(name) click to toggle source
# File lib/cacheable/keys.rb, line 58
def have_association_cache_key(name)
  "#{model_cache_key}/association/#{name}"
end
method_cache_key(meth) click to toggle source
# File lib/cacheable/keys.rb, line 42
def method_cache_key(meth)
  "#{model_cache_key}/method/#{meth}"
end
model_cache_key() click to toggle source
# File lib/cacheable/keys.rb, line 38
def model_cache_key
  "#{self.class.base_class.name.tableize}/#{self.id.to_i}"
end
model_cache_keys() click to toggle source
# File lib/cacheable/keys.rb, line 34
def model_cache_keys
  ["#{self.class.base_class.name.tableize}/#{self.id.to_i}", "#{self.class.base_class.name.tableize}/#{self.to_param}"]
end