wordfilter 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bacf3448e222dac61c2dc9f317d1615846c21d98
4
+ data.tar.gz: 532ae6ef880ac7fb3156ff70e88b3641c523cada
5
+ SHA512:
6
+ metadata.gz: 1d4190aaf7950c6f37c5f7cbe5b9435bbb95959bb23be2846e556a64cfed94119733f46a9332d3fe3f0d530c2248a90886ff8a3b0d60a42f4ff4bb4752f62489
7
+ data.tar.gz: ee54c97fbcf1b05a94621b9d4c97d6e6012ed3c5801d51064bf776074181b2977e1062184a277492462fa790554d289e8d20d688353c204c791de4ba35d64de8
@@ -0,0 +1,55 @@
1
+ [
2
+ "beeyotch",
3
+ "biatch",
4
+ "bitch",
5
+ "chinaman",
6
+ "chinamen",
7
+ "chink",
8
+ "crip",
9
+ "cunt",
10
+ "dago",
11
+ "daygo",
12
+ "dego",
13
+ "dick",
14
+ "douchebag",
15
+ "dyke",
16
+ "fag",
17
+ "fatass",
18
+ "fatso",
19
+ "gash",
20
+ "gimp",
21
+ "golliwog",
22
+ "gook",
23
+ "gyp",
24
+ "homo",
25
+ "hooker",
26
+ "jap",
27
+ "kike",
28
+ "kraut",
29
+ "lame",
30
+ "lardass",
31
+ "lesbo",
32
+ "negro",
33
+ "nigga",
34
+ "nigger",
35
+ "paki",
36
+ "pickaninny",
37
+ "pussy",
38
+ "raghead",
39
+ "retard",
40
+ "shemale",
41
+ "skank",
42
+ "slut",
43
+ "spade",
44
+ "spic",
45
+ "spook",
46
+ "tard",
47
+ "tits",
48
+ "titt",
49
+ "trannies",
50
+ "tranny",
51
+ "twat",
52
+ "wetback",
53
+ "whore",
54
+ "wop"
55
+ ]
@@ -0,0 +1,48 @@
1
+ require 'json'
2
+
3
+ module Wordfilter
4
+ BadWordsFileName = File.dirname(__FILE__) + "/badwords.json"
5
+ @@blacklist = nil
6
+
7
+ def self.init_first_time
8
+ return if(!@@blacklist.nil?)
9
+ self.init
10
+ end
11
+
12
+ def self.init
13
+ badwords_file = File.read(BadWordsFileName)
14
+ @@blacklist = JSON.parse(badwords_file)
15
+ @@blacklist.map!(&:downcase)
16
+ return
17
+ end
18
+
19
+ def self.blacklisted? string
20
+ self.init_first_time
21
+
22
+ string_to_test = string.downcase
23
+
24
+ @@blacklist.each{|word|
25
+ return true if string_to_test.include? word
26
+ }
27
+
28
+ return false
29
+ end
30
+
31
+ def self.add_words words
32
+ self.init_first_time
33
+ words.map!(&:downcase)
34
+ @@blacklist += words
35
+ return
36
+ end
37
+
38
+ def self.remove_word word
39
+ self.init_first_time
40
+ @@blacklist.delete word.downcase
41
+ return
42
+ end
43
+
44
+ def self.clear_list
45
+ @@blacklist = []
46
+ return
47
+ end
48
+ end
@@ -0,0 +1,43 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../lib/')
2
+
3
+ require 'test/unit'
4
+ require 'wordfilter'
5
+
6
+ class WordfilterTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ super
10
+ Wordfilter.init
11
+ end
12
+
13
+ def test_detects_bad_words_in_a_string
14
+ assert(Wordfilter::blacklisted?("this string contains the word skank"), "skank should be true")
15
+ assert(Wordfilter::blacklisted?("this string contains the word SkAnK"), "SkAnK should be true")
16
+ assert(Wordfilter::blacklisted?("tthis string contains the wordskank"), "wordskank should be true")
17
+ assert(Wordfilter::blacklisted?("this string contains the skankword"), "skankword should be true")
18
+ refute(Wordfilter::blacklisted?("this string is clean!"), "should be false")
19
+ end
20
+
21
+ def test_add_word_to_blacklist
22
+ Wordfilter::add_words(['clean'])
23
+ assert(Wordfilter::blacklisted?("this string was clean!"), "Failed to blacklist a string containing a new bad word.")
24
+ end
25
+
26
+ def test_added_words_checked_case_insensitively
27
+ Wordfilter::add_words(['CLEAN'])
28
+ assert(Wordfilter::blacklisted?("this string was clean!"), "Failed to blacklist a string containing a new bad word because of casing differences.")
29
+ end
30
+
31
+ def test_clear_blacklist
32
+ Wordfilter::clear_list
33
+ refute(Wordfilter::blacklisted?("this string contains the word skank"), "Cleared word list still blacklisting strings.")
34
+ Wordfilter::add_words(['skank'])
35
+ assert(Wordfilter::blacklisted?("this string contains the word skank"), "Failed to blacklist a string containing a new bad word.")
36
+ end
37
+
38
+ def test_remove_single_word_from_blacklist
39
+ assert(Wordfilter::blacklisted?("I have a prescription."), "Prescription should be blacklisted.")
40
+ Wordfilter::remove_word "crip"
41
+ refute(Wordfilter::blacklisted?("I have a prescription."), "Prescription should no longer be blacklisted.")
42
+ end
43
+ end
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wordfilter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.6
5
+ platform: ruby
6
+ authors:
7
+ - Darius Kazemi
8
+ - Eli Brody
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-01-30 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: |
15
+ Wordfilter is a small library that can check a string for blacklisted words.
16
+ It comes with a pre-defined list of words, but you can add your own.
17
+ email:
18
+ - darius.kazemi@gmail.com
19
+ - brodyeli@gmail.com
20
+ executables: []
21
+ extensions: []
22
+ extra_rdoc_files: []
23
+ files:
24
+ - lib/wordfilter.rb
25
+ - lib/badwords.json
26
+ - test/wordfilter_test.rb
27
+ homepage: https://github.com/dariusk/wordfilter
28
+ licenses:
29
+ - MIT
30
+ metadata: {}
31
+ post_install_message:
32
+ rdoc_options: []
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubyforge_project:
47
+ rubygems_version: 2.0.14
48
+ signing_key:
49
+ specification_version: 4
50
+ summary: A small module meant for use in text generators that lets you filter strings
51
+ for bad words.
52
+ test_files:
53
+ - test/wordfilter_test.rb