Class: CanTango::PermissionEngine::Factory
- Inherits:
-
Object
- Object
- CanTango::PermissionEngine::Factory
- Defined in:
- lib/cantango/permission_engine/factory.rb
Instance Attribute Summary collapse
-
#ability ⇒ Object
Returns the value of attribute ability.
Instance Method Summary collapse
- #build! ⇒ Object
- #collector(type) ⇒ Object
- #config_path ⇒ Object
-
#initialize(ability) ⇒ Factory
constructor
creates the factory for the ability note that the ability contains the roles and role groups of the user (or account).
- #options ⇒ Object
- #permission_types ⇒ Object
- #store ⇒ Object
- #store_class ⇒ Object
- #store_options ⇒ Object
Constructor Details
#initialize(ability) ⇒ Factory
creates the factory for the ability note that the ability contains the roles and role groups of the user (or account)
9 10 11 |
# File 'lib/cantango/permission_engine/factory.rb', line 9 def initialize ability @ability = ability end |
Instance Attribute Details
#ability ⇒ Object
Returns the value of attribute ability.
4 5 6 |
# File 'lib/cantango/permission_engine/factory.rb', line 4 def ability @ability end |
Instance Method Details
#build! ⇒ Object
13 14 15 16 17 18 |
# File 'lib/cantango/permission_engine/factory.rb', line 13 def build! @evaluators ||= .inject([]) do |res, type| res << collector(type).build res end.flatten.compact end |
#collector(type) ⇒ Object
20 21 22 23 |
# File 'lib/cantango/permission_engine/factory.rb', line 20 def collector(type) rules = store.send(:"#{type}_rules") CanTango::PermissionEngine::Collector.new(ability, rules, type) end |
#config_path ⇒ Object
45 46 47 |
# File 'lib/cantango/permission_engine/factory.rb', line 45 def config_path .config_path end |
#options ⇒ Object
25 26 27 |
# File 'lib/cantango/permission_engine/factory.rb', line 25 def ability. end |
#permission_types ⇒ Object
41 42 43 |
# File 'lib/cantango/permission_engine/factory.rb', line 41 def .types end |
#store ⇒ Object
29 30 31 |
# File 'lib/cantango/permission_engine/factory.rb', line 29 def store store_class.new :permissions, end |
#store_class ⇒ Object
33 34 35 |
# File 'lib/cantango/permission_engine/factory.rb', line 33 def store_class .store.default_class end |
#store_options ⇒ Object
37 38 39 |
# File 'lib/cantango/permission_engine/factory.rb', line 37 def .store..merge(:path => config_path) end |