class Admission::Tests::Evaluation
Attributes
arbitration[R]
status[R]
Public Class Methods
new(status, scope)
click to toggle source
# File lib/admission/tests/tests.rb, line 57 def initialize status, scope @status = status @scope = scope end
Public Instance Methods
evaluate(privilege)
click to toggle source
# File lib/admission/tests/tests.rb, line 71 def evaluate privilege arbitration.prepare_sitting privilege.context arbitration.rule_per_privilege(privilege).eql?(true) end
evaluate_groups(to_assert, to_refute)
click to toggle source
# File lib/admission/tests/tests.rb, line 76 def evaluate_groups to_assert, to_refute to_assert = to_assert.map{|p| ContextSpecificPrivilege.new p} to_refute = to_refute.map{|p| ContextSpecificPrivilege.new p} sorted = (to_assert + to_refute).sort_by{|p| p.privilege.context} admissible, denied = sorted.partition{|p| evaluate p.privilege} [ (denied - to_refute), (admissible - to_assert) ] end
for_request(name)
click to toggle source
# File lib/admission/tests/tests.rb, line 66 def for_request name self.request = name self end
messages_for_groups(should, should_not)
click to toggle source
# File lib/admission/tests/tests.rb, line 88 def messages_for_groups should, should_not [ should.map{|p| Admission::Tests.assertion_failed_message arbitration, p.privilege}, should_not.map{|p| Admission::Tests.refutation_failed_message arbitration, p.privilege} ].flatten end
request=(name)
click to toggle source
# File lib/admission/tests/tests.rb, line 62 def request= name @arbitration = status.instantiate_arbitration name.to_sym, @scope end