Class: CanTango::Ability::Cache
- Inherits:
-
Object
- Object
- CanTango::Ability::Cache
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
#ability ⇒ Object
Returns the value of attribute ability.
6
7
8
|
# File 'lib/cantango/ability/cache.rb', line 6
def ability
@ability
end
|
#rules_cached ⇒ Object
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_rules ⇒ Object
20
21
22
|
# File 'lib/cantango/ability/cache.rb', line 20
def cached_rules
@rules ||= reader.prepared_rules
end
|
#cached_rules? ⇒ Boolean
36
37
38
|
# File 'lib/cantango/ability/cache.rb', line 36
def cached_rules?
key.same? session
end
|
#compile_adapter? ⇒ Boolean
58
59
60
|
# File 'lib/cantango/ability/cache.rb', line 58
def compile_adapter?
CanTango.config.adapters.registered?(:compiler)
end
|
#compile_on? ⇒ 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
|
#compiler ⇒ Object
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
|
#key ⇒ Object
40
41
42
|
# File 'lib/cantango/ability/cache.rb', line 40
def key
@key ||= Key.new ability.user, ability.subject
end
|
#reader ⇒ Object
28
29
30
|
# File 'lib/cantango/ability/cache.rb', line 28
def reader
@reader ||= Reader.new(self)
end
|
#rules_cache ⇒ Object
44
45
46
|
# File 'lib/cantango/ability/cache.rb', line 44
def rules_cache
@rules_cache ||= RulesCache.new(session).instance
end
|
#session ⇒ Object
12
13
14
|
# File 'lib/cantango/ability/cache.rb', line 12
def session
ability.session
end
|
#writer ⇒ Object
32
33
34
|
# File 'lib/cantango/ability/cache.rb', line 32
def writer
@writer ||= Writer.new(self)
end
|