NoNo 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.markdown +21 -0
- data/Rakefile +1 -0
- data/lib/nono/banned_word.rb +48 -0
- data/lib/nono/version.rb +3 -0
- data/lib/nono.rb +33 -0
- data/nono.gemspec +24 -0
- metadata +64 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
NoNo
|
2
|
+
================
|
3
|
+
|
4
|
+
NoNo is a simple Profanity Filter is a black-list based validator. Given a list of fields to check against, NoNo will ensure no content with any profanity is entered into the system.
|
5
|
+
|
6
|
+
## Installation ##
|
7
|
+
|
8
|
+
Latest stable release:
|
9
|
+
|
10
|
+
gem "nono"
|
11
|
+
|
12
|
+
## Usage ##
|
13
|
+
|
14
|
+
In the model you want to check for profanity its as simple as one line in the model.
|
15
|
+
|
16
|
+
class Article < ActiveRecord::Base
|
17
|
+
check_profanity
|
18
|
+
attr_accessible :body, :title
|
19
|
+
end
|
20
|
+
|
21
|
+
This will ensure no record will be saved into the system.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module NoNo
|
2
|
+
WORDS = %w(
|
3
|
+
4r5e 5ht 5hit a55 anal anus ar5e arrse arse ass ass-fucker
|
4
|
+
asses assfucker assfukka asshole assholes asswhole a_s_s b!tch b00bs
|
5
|
+
b7ch btch ballbag balls ballsack bastard beastial beastiality bellend
|
6
|
+
bestial bestiality bi+ch biatch bitch bitcher bitchers bitches bitchin
|
7
|
+
bitching bloody blowjob blowjob blowjobs boiolas bollock bollok boner
|
8
|
+
boob boobs booobs boooobs booooobs booooooobs breasts buceta bugger bum
|
9
|
+
bunnyfucker butt butthole buttmuch buttplug c0ck c0cksucker carpetmuncher
|
10
|
+
cawk chink cipa clt clit clitoris clits cnut cock cock-sucker cockface
|
11
|
+
cockhead cockmunch cockmuncher cocks cocksuck cocksucked cocksucker
|
12
|
+
cocksucking cocksucks cocksuka cocksukka cok cokmuncher coksucka coon
|
13
|
+
cox crap cum cummer cumming cums cumshot cunilingus cunillingus cunnilingus
|
14
|
+
cunt cuntlick cuntlicker cuntlicking cunts cyalis cyberfuc
|
15
|
+
cyberfuck cyberfucked cyberfucker cyberfuckers cyberfucking dck
|
16
|
+
damn dick dickhead dildo dildos dink dinks dirsa dlck dog-fucker doggin
|
17
|
+
dogging donkeyribber doosh duche dyke ejaculate ejaculated ejaculates
|
18
|
+
ejaculating ejaculatings ejaculation ejakulate fuck fucker f4nny fag fagging
|
19
|
+
faggitt faggot faggs fagot fagots fags fanny fannyflaps fannyfucker fanyy fatass
|
20
|
+
fcuk fcuker fcuking feck fecker felching fellate fellatio fingerfuck fingerfucked
|
21
|
+
fingerfucker fingerfuckers fingerfucking fingerfucks fistfuck fistfucked
|
22
|
+
fistfucker fistfuckers fistfucking fistfuckings fistfucks flange fook fooker
|
23
|
+
fuck fucka fucked fucker fuckers fuckhead fuckheads fuckin fucking fuckings
|
24
|
+
fuckingshitmotherfucker fuckme fucks fuckwhit fuckwit fudgepacker
|
25
|
+
fudgepacker fuk fuker fukker fukkin fuks fukwhit fukwit fux fux0r f_u_c_k gangbang
|
26
|
+
gangbanged gangbangs gaylord gaysex goatse God god-dam god-damned goddamn goddamned
|
27
|
+
hardcoresex hell heshe hoar hoare hoer homo hore horniest horny hotsex jack-off jackoff jap
|
28
|
+
jerk-off jism jiz jizm jizz kawk knob knobead knobed knobend knobhead knobjocky knobjokey kock kondum
|
29
|
+
kondums kum kummer kumming kums kunilingus l3i+ch l3itch labia lmfao lust lusting m0f0 m0fo
|
30
|
+
m45terbate ma5terb8 ma5terbate masochist master-bate masterb8 masterbat* masterbat3 masterbate
|
31
|
+
masterbation masterbations masturbate mo-fo mof0 mofo mothafuck mothafucka mothafuckas mothafuckaz
|
32
|
+
mothafucked mothafucker mothafuckers mothafuckin mothafucking mothafuckings mothafucks motherfucker
|
33
|
+
motherfuck motherfucked motherfucker motherfuckers motherfuckin motherfucking motherfuckings
|
34
|
+
motherfuckka motherfucks muff mutha muthafecker muthafuckker muther mutherfucker ngga ngger nazi
|
35
|
+
nigg3r nigg4h nigga niggah niggas niggaz nigger niggers nob nobjokey nobhead nobjocky nobjokey
|
36
|
+
numbnuts nutsack orgasim orgasims orgasm orgasms p0rn pawn pecker penis penisfucker phonesex
|
37
|
+
phuck phuk phuked phuking phukked phukking phuks phuq pigfucker pimpis piss pissed pisser pissers
|
38
|
+
pisses pissflaps pissin pissing pissoff porn porno pornography pornos prick
|
39
|
+
pricks pron pube pusse pussi pussies pussy pussys rectum retard rimjaw rimming shit
|
40
|
+
s.o.b. sadist schlong screwing scroat scrote scrotum semen sex sh!+ sh!t sht shag shagger
|
41
|
+
shaggin shagging shemale shi+ shit shitdick shite shited shitey shitfuck shitfull shithead
|
42
|
+
shiting shitings shits shitted shitter shitters shitting shittings shitty skank slut sluts
|
43
|
+
smegma smut snatch son-of-a-bitch spac spunk s_h_i_t ttte5 ttties teets teez testical
|
44
|
+
testicle tit titfuck tits titt tittie5 tittiefucker titties tittyfuck tittywank titwank
|
45
|
+
tosser turd tw4t twat twathead twatty twunt twunter v4gra vgra vagina viagra vulva w00se wang
|
46
|
+
wank wanker wanky whoar whore willies willy xrated xxx
|
47
|
+
)
|
48
|
+
end
|
data/lib/nono/version.rb
ADDED
data/lib/nono.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require "nono/version"
|
2
|
+
require "nono/banned_word"
|
3
|
+
|
4
|
+
module NoNo
|
5
|
+
|
6
|
+
module ClassMethods
|
7
|
+
def check_profanity
|
8
|
+
require 'sanitize'
|
9
|
+
validate :is_profane?
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module InstanceMethods
|
14
|
+
def is_profane?
|
15
|
+
|
16
|
+
self.attributes.values.select{|x| !x.nil? }.each do |c|
|
17
|
+
if c.class == String
|
18
|
+
if WORDS.include? Sanitize.clean(c).gsub(/\r\n\t/, "").gsub(" ", "")
|
19
|
+
errors.add(:base, "Profanity found. This prevented the record from saving.")
|
20
|
+
return false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.included(base)
|
28
|
+
base.send :extend, ClassMethods
|
29
|
+
base.send :include, InstanceMethods
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
ActiveRecord::Base.send(:include, NoNo)
|
data/nono.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "nono/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "NoNo"
|
7
|
+
s.version = NoNo::VERSION
|
8
|
+
s.authors = ["Garrett Heinlen"]
|
9
|
+
s.email = ["heinleng@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{NoNo a simple profanity filter}
|
12
|
+
#s.description = %q{}
|
13
|
+
|
14
|
+
s.rubyforge_project = "nono"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "sanitize"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: NoNo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Garrett Heinlen
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sanitize
|
16
|
+
requirement: &70286680657020 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70286680657020
|
25
|
+
description:
|
26
|
+
email:
|
27
|
+
- heinleng@gmail.com
|
28
|
+
executables: []
|
29
|
+
extensions: []
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- README.markdown
|
35
|
+
- Rakefile
|
36
|
+
- lib/nono.rb
|
37
|
+
- lib/nono/banned_word.rb
|
38
|
+
- lib/nono/version.rb
|
39
|
+
- nono.gemspec
|
40
|
+
homepage: ''
|
41
|
+
licenses: []
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project: nono
|
60
|
+
rubygems_version: 1.8.15
|
61
|
+
signing_key:
|
62
|
+
specification_version: 3
|
63
|
+
summary: NoNo a simple profanity filter
|
64
|
+
test_files: []
|