Class: CanTango::Ability::Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/cantango/ability/cache.rb,
lib/cantango/adapter/moneta.rb,
lib/cantango/adapter/compiler.rb,
lib/cantango/ability/cache/key.rb,
lib/cantango/ability/cache/reader.rb,
lib/cantango/ability/cache/writer.rb,
lib/cantango/ability/cache/kompiler.rb,
lib/cantango/ability/cache/base_cache.rb,
lib/cantango/ability/cache/rules_cache.rb,
lib/cantango/ability/cache/moneta_cache.rb,
lib/cantango/ability/cache/session_cache.rb

Defined Under Namespace

Classes: BaseCache, Key, Kompiler, MonetaCache, Reader, RulesCache, SessionCache, Writer

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ability) ⇒ Cache

Returns a new instance of Cache.



8
9
10
# File 'lib/cantango/ability/cache.rb', line 8

def initialize ability
  @ability = ability
end

Instance Attribute Details

#abilityObject (readonly)

Returns the value of attribute ability.



6
7
8
# File 'lib/cantango/ability/cache.rb', line 6

def ability
  @ability
end

#rules_cachedObject (readonly)

Returns the value of attribute rules_cached.



6
7
8
# File 'lib/cantango/ability/cache.rb', line 6

def rules_cached
  @rules_cached
end

Instance Method Details

#cache_rules!Object



16
17
18
# File 'lib/cantango/ability/cache.rb', line 16

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

#cached_rulesObject



20
21
22
# File 'lib/cantango/ability/cache.rb', line 20

def cached_rules
  @rules ||= reader.prepared_rules
end

#cached_rules?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/cantango/ability/cache.rb', line 36

def cached_rules?
  key.same? session
end

#compile_adapter?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/cantango/ability/cache.rb', line 58

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

#compile_on?Boolean

Returns:

  • (Boolean)


53
54
55
56
# File 'lib/cantango/ability/cache.rb', line 53

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

#compilerObject



24
25
26
# File 'lib/cantango/ability/cache.rb', line 24

def compiler
  @compiler ||= Kompiler.new
end

#invalidate!Object



48
49
50
51
# File 'lib/cantango/ability/cache.rb', line 48

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

#keyObject



40
41
42
# File 'lib/cantango/ability/cache.rb', line 40

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

#readerObject



28
29
30
# File 'lib/cantango/ability/cache.rb', line 28

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

#rules_cacheObject



44
45
46
# File 'lib/cantango/ability/cache.rb', line 44

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

#sessionObject



12
13
14
# File 'lib/cantango/ability/cache.rb', line 12

def session
  ability.session
end

#writerObject



32
33
34
# File 'lib/cantango/ability/cache.rb', line 32

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