module ApplicationRecordMethods

Public Class Methods

can_purge() click to toggle source

Class Methods ========================================================

# File lib/varnish_rails/application_record_methods.rb, line 62
def self.can_purge
  return VarnishRails.configuration.included_models.include?(self::name) if VarnishRails.configuration.included_models.present?
  return !VarnishRails.configuration.excluded_models.include?(self::name) if VarnishRails.configuration.excluded_models.present?
  return true
end
purge_cache_by_varnish_class_name() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 84
def self.purge_cache_by_varnish_class_name
  VarnishRailsService::purge_xkey_cache(self::varnish_class_name, self::varnish_class_name_fk) if (self::can_purge && self::varnish_purge_on_commit)
end
varnish_class_name(namespace='') click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 68
def self.varnish_class_name(namespace='')
  class_name = namespace.present? ? [self.name, namespace].join('-') : self.name
  return self.varnish_encode(class_name)
end
varnish_class_name_fk() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 73
def self.varnish_class_name_fk
  return self.varnish_class_name('fk')
end
varnish_encode(value) click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 88
def self.varnish_encode(value)
  Digest::MD5.hexdigest([Rails.application.engine_name, Rails.env, value].join('-'))[0,VarnishRails.configuration.xkey_length]
end
varnish_foreign_keys() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 77
def self.varnish_foreign_keys
  foreign_keys = []
  classes = self.reflect_on_all_associations.map(&:class_name).select{|c| !/.+::Translation/.match(c)}
  foreign_keys = classes.map(&:constantize).map(&:varnish_class_name_fk) if classes.length > 0
  return foreign_keys
end

Public Instance Methods

purge_cache_by_varnish_class_name() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 52
def purge_cache_by_varnish_class_name
  self.class.purge_cache_by_varnish_class_name
end
purge_cache_by_varnish_id() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 56
def purge_cache_by_varnish_id
  VarnishRailsService::purge_xkey_cache(varnish_id, varnish_class_name_fk) if (self.class.can_purge && varnish_id.present? && !/.+::Translation/.match(self.class.name) && self.class.varnish_purge_on_commit)
end
varnish_class_name() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 34
def varnish_class_name
  return self.class.varnish_class_name
end
varnish_class_name_fk() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 38
def varnish_class_name_fk
  return self.class.varnish_class_name_fk
end
varnish_configure() click to toggle source

Instance Methods =====================================================

# File lib/varnish_rails/application_record_methods.rb, line 30
def varnish_configure
  self.class.varnish_purge_on_commit = true if self.class.varnish_purge_on_commit.nil?
end
varnish_foreign_keys() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 42
def varnish_foreign_keys
  return self.class.varnish_foreign_keys
end
varnish_id() click to toggle source
# File lib/varnish_rails/application_record_methods.rb, line 46
def varnish_id
  return self.class.varnish_encode([self.class.name, id].join('-')) if defined?(id)
end