Class: Credentials::Rulebook
- Inherits:
-
Object
- Object
- Credentials::Rulebook
- Defined in:
- lib/credentials/rulebook.rb
Instance Attribute Summary collapse
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
Instance Method Summary collapse
- #can(verb, *args) ⇒ Object
- #can?(actor, verb, *args) ⇒ Boolean
- #cannot(verb, *args) ⇒ Object
-
#initialize(klass, rules = []) ⇒ Rulebook
constructor
A new instance of Rulebook.
Constructor Details
#initialize(klass, rules = []) ⇒ Rulebook
Returns a new instance of Rulebook.
5 6 7 8 |
# File 'lib/credentials/rulebook.rb', line 5 def initialize(klass, rules = []) @rules = rules @klass = klass end |
Instance Attribute Details
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
3 4 5 |
# File 'lib/credentials/rulebook.rb', line 3 def rules @rules end |
Instance Method Details
#can(verb, *args) ⇒ Object
10 11 12 |
# File 'lib/credentials/rulebook.rb', line 10 def can(verb, *args) @rules << Rules::Can.new(@klass, verb, *args) end |
#can?(actor, verb, *args) ⇒ Boolean
18 19 20 21 22 23 24 25 |
# File 'lib/credentials/rulebook.rb', line 18 def can?(actor, verb, *args) result = @klass.[:allow_by_default] || false @rules.each do |rule| result = true if rule.allow?(actor, verb, *args) result = false if rule.deny?(actor, verb, *args) end result end |
#cannot(verb, *args) ⇒ Object
14 15 16 |
# File 'lib/credentials/rulebook.rb', line 14 def cannot(verb, *args) @rules << Rules::Cannot.new(@klass, verb, *args) end |