class DeclarativePolicy::Rule::DelegatedCondition

A rule constructed from DelegateDsl - using a condition from a delegated policy.

Constants

MissingDelegate

Internal use only - this is rescued each time it's raised.

Public Class Methods

new(delegate_name, name) click to toggle source
# File lib/declarative_policy/rule.rb, line 107
def initialize(delegate_name, name)
  @delegate_name = delegate_name
  @name = name
end

Public Instance Methods

cached_pass?(context) click to toggle source
# File lib/declarative_policy/rule.rb, line 125
def cached_pass?(context)
  condition = delegated_context(context).condition(@name)
  return unless condition.cached?

  condition.pass?
rescue MissingDelegate
  false
end
delegated_context(context) click to toggle source
# File lib/declarative_policy/rule.rb, line 112
def delegated_context(context)
  policy = context.delegated_policies[@delegate_name]
  raise MissingDelegate if policy.nil?

  policy
end
pass?(context) click to toggle source
# File lib/declarative_policy/rule.rb, line 134
def pass?(context)
  delegated_context(context).condition(@name).pass?
rescue MissingDelegate
  false
end
repr() click to toggle source
# File lib/declarative_policy/rule.rb, line 140
def repr
  "#{@delegate_name}.#{@name}"
end
score(context) click to toggle source
# File lib/declarative_policy/rule.rb, line 119
def score(context)
  delegated_context(context).condition(@name).score
rescue MissingDelegate
  0
end