Module: Kasket::ReloadAssociationMixin

Defined in:
lib/kasket/reload_association_mixin.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



14
15
16
# File 'lib/kasket/reload_association_mixin.rb', line 14

def self.included(base)
  base.alias_method_chain :reload, :kasket_clearing
end

Instance Method Details

#reload_with_kasket_clearing(*args) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/kasket/reload_association_mixin.rb', line 3

def reload_with_kasket_clearing(*args)
  if loaded?
    clear_local_kasket_indices if respond_to?(:clear_local_kasket_indices)
  else
    target_class = proxy_reflection.options[:polymorphic] ? association_class : proxy_reflection.klass
    Kasket.cache.delete_matched_local(/^#{target_class.kasket_key_prefix}/) if target_class.respond_to?(:kasket_key_prefix)
  end

  reload_without_kasket_clearing(*args)
end