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.
5 6 7 8 9 10 11 12 |
# File 'lib/papers_please/permission.rb', line 5 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.
3 4 5 |
# File 'lib/papers_please/permission.rb', line 3 def granted_by @granted_by end |
#granting_class ⇒ Object
Returns the value of attribute granting_class.
3 4 5 |
# File 'lib/papers_please/permission.rb', line 3 def granting_class @granting_class end |
#key ⇒ Object
Returns the value of attribute key.
3 4 5 |
# File 'lib/papers_please/permission.rb', line 3 def key @key end |
#predicate ⇒ Object
Returns the value of attribute predicate.
3 4 5 |
# File 'lib/papers_please/permission.rb', line 3 def predicate @predicate end |
#query ⇒ Object
Returns the value of attribute query.
3 4 5 |
# File 'lib/papers_please/permission.rb', line 3 def query @query end |
#subject ⇒ Object
Returns the value of attribute subject.
3 4 5 |
# File 'lib/papers_please/permission.rb', line 3 def subject @subject end |
Instance Method Details
#fetch(*args) ⇒ Object
31 32 33 34 35 |
# File 'lib/papers_please/permission.rb', line 31 def fetch(*args) return query.call(*args) if query.is_a? Proc nil end |
#granted?(*args) ⇒ Boolean
22 23 24 25 26 27 28 29 |
# File 'lib/papers_please/permission.rb', line 22 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
14 15 16 |
# File 'lib/papers_please/permission.rb', line 14 def granted_by_other? @granting_class.is_a?(Class) && @granted_by.is_a?(Proc) end |
#matches?(key, subject) ⇒ Boolean
18 19 20 |
# File 'lib/papers_please/permission.rb', line 18 def matches?(key, subject) key_matches?(key) && subject_matches?(subject) end |