module Cacheable
  extend ActiveSupport::Concern

  attr_accessor :cache_keys

  included do
    after_initialize :set_cache_keys
    after_commit :destroy_cache
  end

  private
    def destroy_cache
      cache_keys.each { |k| $redis.del(k) }
    end

    def set_cache_keys
      self.cache_keys = []
    end
end
