class Bodyguards::RuleSet

Attributes

global_rules[R]
rules[R]

Public Class Methods

new() click to toggle source
# File lib/bodyguards/rule_set.rb, line 3
def initialize
  @global_rules = []
  @rules = {}
end

Public Instance Methods

add_global_rule(rule) click to toggle source
# File lib/bodyguards/rule_set.rb, line 12
def add_global_rule(rule)
  @global_rules << rule
end
add_rule_for(feature_name, rule) click to toggle source
# File lib/bodyguards/rule_set.rb, line 8
def add_rule_for(feature_name, rule)
  rules[feature_name.to_sym] = rule
end
evaluate(feature_name, subject) click to toggle source
# File lib/bodyguards/rule_set.rb, line 16
def evaluate(feature_name, subject)
  return true if global_rules.any? { |rule| rule.evaluate(subject) }
  rules.fetch(feature_name.to_sym).evaluate(subject)
end
evaluate_all(subject) click to toggle source
# File lib/bodyguards/rule_set.rb, line 21
def evaluate_all(subject)
  return true if global_rules.any? { |rule| rule.evaluate(subject) }
  rules.values.any? { |rule| rule.evaluate(subject) }
end