Sha256: 689564ae489bae28b0f280bb2641f1cf78c4afee8855eac3f3b591a5fb4a8829

Contents?: true

Size: 697 Bytes

Versions: 3

Compression:

Stored size: 697 Bytes

Contents

require 'rubygems'
gem 'activerecord'
require 'active_record'

module CacheAdvance
  class ActiveRecordSweeper < ::ActiveRecord::Observer

    def self.initialize_observed(classes)
      observe(classes)
    end

    def reload_sweeper
      observed_classes.each do |klass| 
        klass.name.constantize.add_observer(self)
      end
    end

    def after_create(object)
      expire_caches_for(object)
    end

    alias_method :after_update, :after_create
    alias_method :after_destroy, :after_create

    protected
    
    def expire_caches_for(object)
      class_symbol = object.class.name.underscore.to_sym
      CacheAdvance.cache_set.expire_for_class(class_symbol)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aub-cache_advance-0.2.0 lib/cache_advance/active_record_sweeper.rb
aub-cache_advance-1.1.0 lib/cache_advance/active_record_sweeper.rb
aub-cache_advance-1.1.1 lib/cache_advance/active_record_sweeper.rb