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