Sha256: acafe91acff11a162b041360177bb19de199b3aa93b29e1471eaf4f7fb17e8b9

Contents?: true

Size: 800 Bytes

Versions: 12

Compression:

Stored size: 800 Bytes

Contents

module Gluttonberg
  module Content
    require 'despamilator/filter'

    module DespamilatorFilter

      class Shouting < Despamilator::Filter

        def name
          'Shouting'
        end

        def description
          'Detects and scores shouting (all caps)'
        end

        def parse subject
          # strip HTML
          text = subject.text.gsub(/<\/?[^>]*>/, "")

          return if text.length < 20

          uppercased = text.scan(/[A-Z][A-Z]+/).join.length
          lowercased = text.count(/[a-z]/)

          if uppercased > 0
            subject.register_match!({
                :score => (uppercased.to_f / (uppercased + lowercased)) * 0.5,
                :filter => self
            })
          end
        end

      end

    end
  end #Content
end #Gluttonberg

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gluttonberg-core-3.0.2 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-3.0.1 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-3.0.0 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.6.4 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.6.3 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.6.2 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.6.1 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.6.0 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.5.9 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.5.8 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.5.7 lib/gluttonberg/content/despamilator/filter/shouting.rb
gluttonberg-core-2.5.6 lib/gluttonberg/content/despamilator/filter/shouting.rb