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