class Splam::Suite
Attributes
reasons[R]
request[RW]
unimplemented, cry about it fanboy!
score[R]
Public Class Methods
new(body, rules, threshold, conditions, &block)
click to toggle source
Calls superclass method
# File lib/splam.rb, line 19 def initialize(body, rules, threshold, conditions, &block) super(body, rules, threshold, conditions) block.call(self) if block self.rules = self.rules.inject({}) do |memo, (rule, weight)| if (rule.is_a?(Class) && rule.superclass == Splam::Rule) || rule = Splam::Rule.rules[rule] memo[rule] = weight || 1.0 else raise ArgumentError, "Invalid rule: #{rule.inspect}" end memo end end
Public Instance Methods
run(record, request)
click to toggle source
# File lib/splam.rb, line 32 def run(record, request) score, reasons = 0, [] rules.each do |rule_class, weight| weight ||= 1 worker = rule_class.run(self, record, weight, request) score += worker.score reasons << worker.reasons end [score, reasons] end
splam?(score)
click to toggle source
# File lib/splam.rb, line 43 def splam?(score) score >= threshold end