Module: Splam

Defined in:
lib/splam.rb

Defined Under Namespace

Modules: ClassMethods, Rules Classes: Ngram, Rule, Suite

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#skip_splam_checkObject

Returns the value of attribute skip_splam_check.



91
92
93
# File 'lib/splam.rb', line 91

def skip_splam_check
  @skip_splam_check
end

#splam_reasonsObject (readonly)

Returns the value of attribute splam_reasons.



92
93
94
# File 'lib/splam.rb', line 92

def splam_reasons
  @splam_reasons
end

#splam_scoreObject (readonly)

Returns the value of attribute splam_score.



92
93
94
# File 'lib/splam.rb', line 92

def splam_score
  @splam_score
end

Class Method Details

.included(base) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/splam.rb', line 48

def self.included(base)
  # Autoload all files in rules
  # This is bad, mkay
  Dir["#{File.dirname(__FILE__)}/splam/rules/*.rb"].each do |f|
    require f
  end
  require "splam/ngram"
  base.send :extend, ClassMethods
end

Instance Method Details

#splam?Boolean

Returns:

  • (Boolean)


102
103
104
105
# File 'lib/splam.rb', line 102

def splam?
  # run_splam_suite # ask yourself, do you want this to be cached for each record instance or not?
  self.class.splam_suite.splam?(splam_score)
end

#validates_as_spamObject



107
108
109
# File 'lib/splam.rb', line 107

def validates_as_spam
  errors.add(self.class.splam_suite.body, "looks like spam.") if (!skip_splam_check? && splam?)
end