Class: PapersPlease::Permission
- Inherits:
-
Object
- Object
- PapersPlease::Permission
- Defined in:
- lib/papers_please/permission.rb
Instance Attribute Summary collapse
-
#granted_by ⇒ Object
Returns the value of attribute granted_by.
-
#granting_class ⇒ Object
Returns the value of attribute granting_class.
-
#key ⇒ Object
Returns the value of attribute key.
-
#predicate ⇒ Object
Returns the value of attribute predicate.
-
#query ⇒ Object
Returns the value of attribute query.
-
#subject ⇒ Object
Returns the value of attribute subject.
Instance Method Summary collapse
- #fetch(*args) ⇒ Object
- #granted?(*args) ⇒ Boolean
- #granted_by_other? ⇒ Boolean
-
#initialize(key, subject, query: nil, predicate: nil, granted_by: nil, granting_class: nil) ⇒ Permission
constructor
A new instance of Permission.
- #matches?(key, subject) ⇒ Boolean
Constructor Details
#initialize(key, subject, query: nil, predicate: nil, granted_by: nil, granting_class: nil) ⇒ Permission
Returns a new instance of Permission.
8 9 10 11 12 13 14 15 |
# File 'lib/papers_please/permission.rb', line 8 def initialize(key, subject, query: nil, predicate: nil, granted_by: nil, granting_class: nil) self.key = key self.subject = subject self.query = query self.predicate = predicate self.granted_by = granted_by self.granting_class = granting_class end |
Instance Attribute Details
#granted_by ⇒ Object
Returns the value of attribute granted_by.
6 7 8 |
# File 'lib/papers_please/permission.rb', line 6 def granted_by @granted_by end |
#granting_class ⇒ Object
Returns the value of attribute granting_class.
6 7 8 |
# File 'lib/papers_please/permission.rb', line 6 def granting_class @granting_class end |
#key ⇒ Object
Returns the value of attribute key.
5 6 7 |
# File 'lib/papers_please/permission.rb', line 5 def key @key end |
#predicate ⇒ Object
Returns the value of attribute predicate.
6 7 8 |
# File 'lib/papers_please/permission.rb', line 6 def predicate @predicate end |
#query ⇒ Object
Returns the value of attribute query.
6 7 8 |
# File 'lib/papers_please/permission.rb', line 6 def query @query end |
#subject ⇒ Object
Returns the value of attribute subject.
5 6 7 |
# File 'lib/papers_please/permission.rb', line 5 def subject @subject end |
Instance Method Details
#fetch(*args) ⇒ Object
34 35 36 37 38 |
# File 'lib/papers_please/permission.rb', line 34 def fetch(*args) return query.call(*args) if query.is_a? Proc nil end |
#granted?(*args) ⇒ Boolean
25 26 27 28 29 30 31 32 |
# File 'lib/papers_please/permission.rb', line 25 def granted?(*args) return predicate.call(*args) if predicate.is_a? Proc # :nocov: # as far as we can tell this line is unreachable, but just in case... false # :nocov: end |
#granted_by_other? ⇒ Boolean
17 18 19 |
# File 'lib/papers_please/permission.rb', line 17 def granted_by_other? @granting_class.is_a?(Class) && @granted_by.is_a?(Proc) end |
#matches?(key, subject) ⇒ Boolean
21 22 23 |
# File 'lib/papers_please/permission.rb', line 21 def matches?(key, subject) key_matches?(key) && subject_matches?(subject) end |