Class: Consent::Ability
- Inherits:
-
Object
- Object
- Consent::Ability
- Includes:
- CanCan::Ability
- Defined in:
- lib/consent/ability.rb
Overview
Defines a CanCan(Can)::Ability class based on a permissions hash
Instance Method Summary collapse
- #consent(permission: nil, subject: nil, action: nil, view: nil) ⇒ Object
-
#initialize(*args, apply_defaults: true) ⇒ Ability
constructor
A new instance of Ability.
Constructor Details
#initialize(*args, apply_defaults: true) ⇒ Ability
Returns a new instance of Ability.
8 9 10 11 |
# File 'lib/consent/ability.rb', line 8 def initialize(*args, apply_defaults: true) @context = *args apply_defaults! if apply_defaults end |
Instance Method Details
#consent(permission: nil, subject: nil, action: nil, view: nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/consent/ability.rb', line 13 def (permission: nil, subject: nil, action: nil, view: nil) ||= Permission.new(subject, action, view) return unless .valid? can( .action_key, .subject_key, .conditions(*@context), &.object_conditions(*@context) ) end |