class PapersPlease::Permission
Attributes
granted_by[RW]
granting_class[RW]
key[RW]
predicate[RW]
query[RW]
subject[RW]
Public Class Methods
new(key, subject, query: nil, predicate: nil, granted_by: nil, granting_class: nil)
click to toggle source
# 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
Public Instance Methods
fetch(*args)
click to toggle source
# File lib/papers_please/permission.rb, line 31 def fetch(*args) return query.call(*args) if query.is_a? Proc nil end
granted?(*args)
click to toggle source
# 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=(val)
click to toggle source
# File lib/papers_please/permission.rb, line 50 def granted_by=(val) raise ArgumentError, "granted_by must be a Proc, #{val.class} given" if val && !val.is_a?(Proc) @granted_by = val end
granted_by_other?()
click to toggle source
# File lib/papers_please/permission.rb, line 14 def granted_by_other? @granting_class.is_a?(Class) && @granted_by.is_a?(Proc) end
granting_class=(val)
click to toggle source
# File lib/papers_please/permission.rb, line 56 def granting_class=(val) raise ArgumentError, "granting_class must be a Class, #{val.class} given" if val && !val.is_a?(Class) @granting_class = val end
matches?(key, subject)
click to toggle source
# File lib/papers_please/permission.rb, line 18 def matches?(key, subject) key_matches?(key) && subject_matches?(subject) end
predicate=(val)
click to toggle source
# File lib/papers_please/permission.rb, line 44 def predicate=(val) raise ArgumentError, "predicate must be a Proc, #{val.class} given" if val && !val.is_a?(Proc) @predicate = val end
query=(val)
click to toggle source
Setters
# File lib/papers_please/permission.rb, line 38 def query=(val) raise ArgumentError, "query must be a Proc, #{val.class} given" if val && !val.is_a?(Proc) @query = val end
Private Instance Methods
key_matches?(key)
click to toggle source
# File lib/papers_please/permission.rb, line 64 def key_matches?(key) key == @key end
subject_matches?(subject)
click to toggle source
# File lib/papers_please/permission.rb, line 68 def subject_matches?(subject) subject == @subject || subject.class <= @subject end