Module: Splam::ClassMethods

Defined in:
lib/splam.rb

Instance Method Summary collapse

Instance Method Details

#splam_suiteObject



59
# File 'lib/splam.rb', line 59

def splam_suite; @splam_suite; end

#splammable(fieldname, threshold = 100, conditions = nil, &block) ⇒ Object

Set #body attribute as splammable with default threshold of 100

splammable :body

Set #body attribute as splammable with custom threshold

splammable :body, 50

Set #body splammable with threshold and a conditions block?

splamamble :body, 50, lambda { |record| record.skip_splam_check }

Set any Splam::Suite options

splammable :body do |splam|
  splam.threshold  = 150
  splam.conditions = lambda { |r| r.body.size.zero? }
  # Set rules with #splam_key value
  splam.rules     = [:chinese, :html]
  # Set rules with Class instances
  splam.rules     = [Splam::Rules::Chinese]
  # Mix and match, we're all friends here
  splam.rules     = [Splam::Rules::Chinese, :html]
  # Specify optional weights
  splam.rules     = {Splam::Rules::Chinese => 1.2, :html => 5.0}


82
83
84
85
86
87
88
# File 'lib/splam.rb', line 82

def splammable(fieldname, threshold=100, conditions=nil, &block)
  # todo: run only certain rules
  #  e.g. splammable :body, 100, [ :chinese, :html ]
  # todo: define some weighting on the model level
  #  e.g. splammable :body, 50, { :russian => 2.0 }
  @splam_suite = Suite.new(fieldname, Splam::Rule.default_rules, threshold, conditions, &block)
end