Sha256: 356fd3eeea92b9603d30510fc3d019c46ca180714d0975b07991ebc418af1ded

Contents?: true

Size: 1.21 KB

Versions: 14

Compression:

Stored size: 1.21 KB

Contents

module CanTango
  class Ability
    class Cache
      autoload_modules :BaseCache, :SessionCache, :Reader, :Writer, :RulesCache, :Key

      attr_reader :rules_cached, :ability

      def initialize ability
        @ability = ability
      end

      def session
        ability.session
      end

      def cache_rules!
        writer.save key, reader.prepared_rules
      end

      def cached_rules
        @rules ||= reader.prepared_rules
      end

      def compiler
        @compiler ||= Kompiler.new
      end

      def reader
        @reader ||= Reader.new(self)
      end

      def writer
        @writer ||= Writer.new(self)
      end

      def cached_rules?
        key.same? session
      end

      def key
        @key ||= Key.new ability.user, ability.subject
      end

      def rules_cache
        @rules_cache ||= RulesCache.new(session).instance
      end

      def invalidate!
        raise "no session" if !session
        rules_cache.invalidate! session[:cache_key]
      end

      def compile_on?
        return false if !compile_adapter?
        CanTango.config.cache_engine.compile?
      end

      def compile_adapter?
        CanTango.config.adapters.registered?(:compiler)
      end
    end
  end
end


Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
cantango-0.9.3.2 lib/cantango/ability/cache.rb
cantango-0.8.9.5 lib/cantango/ability/cache.rb
cantango-0.8.9.4 lib/cantango/ability/cache.rb
cantango-0.8.9.3 lib/cantango/ability/cache.rb
cantango-0.8.9.2 lib/cantango/ability/cache.rb
cantango-0.8.9.1 lib/cantango/ability/cache.rb
cantango-0.8.9 lib/cantango/ability/cache.rb
cantango-0.8.8.1 lib/cantango/ability/cache.rb
cantango-0.8.8 lib/cantango/ability/cache.rb
cantango-0.8.7 lib/cantango/ability/cache.rb
cantango-0.8.6.2 lib/cantango/ability/cache.rb
cantango-0.8.6.1 lib/cantango/ability/cache.rb
cantango-0.8.6 lib/cantango/ability/cache.rb
cantango-0.8.5.1 lib/cantango/ability/cache.rb