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
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