swearjar 0.0.2 → 0.0.4
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/Gemfile +3 -0
- data/Gemfile.lock +21 -0
- data/README.rdoc +1 -1
- data/Rakefile +2 -31
- data/{config → lib/config}/en.yml +6 -54
- data/lib/swearjar/tester.rb +7 -7
- data/lib/swearjar/version.rb +3 -0
- data/lib/swearjar.rb +9 -10
- data/spec/swearjar_spec.rb +9 -0
- data/swearjar.gemspec +38 -0
- metadata +60 -15
- data/VERSION +0 -1
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
swearjar (0.0.4)
|
|
5
|
+
fuzzyhash (~> 0.0.11)
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: http://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
fuzzyhash (0.0.11)
|
|
11
|
+
rake (0.8.7)
|
|
12
|
+
rspec (1.3.2)
|
|
13
|
+
|
|
14
|
+
PLATFORMS
|
|
15
|
+
ruby
|
|
16
|
+
|
|
17
|
+
DEPENDENCIES
|
|
18
|
+
bundler (~> 1.0.0)
|
|
19
|
+
rake (~> 0.8.7)
|
|
20
|
+
rspec (~> 1.3.0)
|
|
21
|
+
swearjar!
|
data/README.rdoc
CHANGED
|
@@ -15,6 +15,6 @@ gem install swearjar
|
|
|
15
15
|
|
|
16
16
|
Swearjar.default.scorecard('jim henson has a massive hard on he is gonna use to fuck everybody')
|
|
17
17
|
<< {:sexual => 2}
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
Swearjar.default.censor('jim henson has a massive hard on he is gonna use to fuck everybody')
|
|
20
20
|
<< 'jim henson has a massive **** ** he is gonna use to **** everybody'
|
data/Rakefile
CHANGED
|
@@ -1,22 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
|
-
begin
|
|
4
|
-
require 'jeweler'
|
|
5
|
-
Jeweler::Tasks.new do |s|
|
|
6
|
-
s.name = "swearjar"
|
|
7
|
-
s.description = s.summary = "Put another nickel in the swearjar. Simple profanity detection with content analysis."
|
|
8
|
-
s.email = "joshbuddy@gmail.com"
|
|
9
|
-
s.homepage = "http://github.com/joshbuddy/swearjar"
|
|
10
|
-
s.authors = "Joshua Hull"
|
|
11
|
-
s.files = FileList["[A-Z]*", "{lib,spec,config}/**/*"]
|
|
12
|
-
s.add_dependency 'fuzzyhash', '>=0.0.11'
|
|
13
|
-
s.add_dependency 'dirge', '>=0.0.3'
|
|
14
|
-
end
|
|
15
|
-
Jeweler::GemcutterTasks.new
|
|
16
|
-
rescue LoadError
|
|
17
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
|
18
|
-
end
|
|
19
|
-
|
|
20
3
|
require 'spec'
|
|
21
4
|
require 'spec/rake/spectask'
|
|
22
5
|
task :spec => 'spec:all'
|
|
@@ -29,17 +12,5 @@ namespace(:spec) do
|
|
|
29
12
|
end
|
|
30
13
|
end
|
|
31
14
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
t.spec_files = FileList['spec/**/*.rb']
|
|
35
|
-
t.rcov = true
|
|
36
|
-
t.rcov_opts = ['--exclude', 'spec']
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
require 'rake/rdoctask'
|
|
40
|
-
desc "Generate documentation"
|
|
41
|
-
Rake::RDocTask.new do |rd|
|
|
42
|
-
rd.main = "README.rdoc"
|
|
43
|
-
rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
|
|
44
|
-
rd.rdoc_dir = 'rdoc'
|
|
45
|
-
end
|
|
15
|
+
require 'bundler'
|
|
16
|
+
Bundler::GemHelper.install_tasks
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
regex:
|
|
2
|
-
'hard
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
'hard ons?\b': [:sexual]
|
|
3
|
+
'jerk off\b': [:sexual]
|
|
4
|
+
'pissed off\b': [:inappropriate]
|
|
5
|
+
'sand nigger': [:discriminatory]
|
|
6
6
|
simple:
|
|
7
7
|
"anus": [:sexual]
|
|
8
8
|
"arse": [:insult]
|
|
@@ -17,7 +17,6 @@ simple:
|
|
|
17
17
|
"assclown": [:sexual]
|
|
18
18
|
"asscock": [:insult]
|
|
19
19
|
"asscracker": [:sexual]
|
|
20
|
-
"asses": [:sexual]
|
|
21
20
|
"assface": [:sexual]
|
|
22
21
|
"assfuck": [:sexual]
|
|
23
22
|
"assfucker": [:discriminatory]
|
|
@@ -25,7 +24,6 @@ simple:
|
|
|
25
24
|
"asshat": [:sexual]
|
|
26
25
|
"asshead": [:insult]
|
|
27
26
|
"asshole": [:insult]
|
|
28
|
-
"assholes": [:insult]
|
|
29
27
|
"asshopper": [:discriminatory]
|
|
30
28
|
"assjacker": [:discriminatory]
|
|
31
29
|
"asslick": [:insult]
|
|
@@ -51,15 +49,12 @@ simple:
|
|
|
51
49
|
"bitch": [:insult]
|
|
52
50
|
"bitchass": [:insult]
|
|
53
51
|
"bitcher": [:insult]
|
|
54
|
-
"bitchers": [:insult]
|
|
55
|
-
"bitches": [:insult]
|
|
56
52
|
"bitchin": [:inappropriate]
|
|
57
53
|
"bitching": [:inappropriate]
|
|
58
|
-
"
|
|
54
|
+
"bitchtit": [:discriminatory]
|
|
59
55
|
"bitchy": [:insult]
|
|
60
56
|
"blow job": [:sexual]
|
|
61
57
|
"blowjob": [:sexual]
|
|
62
|
-
"blowjobs": [:sexual]
|
|
63
58
|
"bollocks": [:sexual]
|
|
64
59
|
"bollox": [:sexual]
|
|
65
60
|
"boner": [:sexual]
|
|
@@ -97,7 +92,6 @@ simple:
|
|
|
97
92
|
"cockmuncher": [:discriminatory]
|
|
98
93
|
"cocknose": [:insult]
|
|
99
94
|
"cocknugget": [:insult]
|
|
100
|
-
"cocks": [:sexual]
|
|
101
95
|
"cockshit": [:insult]
|
|
102
96
|
"cocksmith": [:discriminatory]
|
|
103
97
|
"cocksmoker": [:discriminatory]
|
|
@@ -112,14 +106,12 @@ simple:
|
|
|
112
106
|
"cooter": [:sexual]
|
|
113
107
|
"cracker": [:discriminatory]
|
|
114
108
|
"cum": [:sexual]
|
|
115
|
-
"cum": [:sexual]
|
|
116
109
|
"cumbubble": [:insult]
|
|
117
110
|
"cumdumpster": [:sexual]
|
|
118
111
|
"cumguzzler": [:discriminatory]
|
|
119
112
|
"cumjockey": [:discriminatory]
|
|
120
113
|
"cummer": [:sexual]
|
|
121
114
|
"cumming": [:sexual]
|
|
122
|
-
"cums": [:sexual]
|
|
123
115
|
"cumshot": [:sexual]
|
|
124
116
|
"cumslut": [:sexual :insult]
|
|
125
117
|
"cumtart": [:insult]
|
|
@@ -134,13 +126,11 @@ simple:
|
|
|
134
126
|
"cuntlicker": [:sexual :discriminatory]
|
|
135
127
|
"cuntlicking": [:sexual]
|
|
136
128
|
"cuntrag": [:insult]
|
|
137
|
-
"cunts": [:insult :sexual]
|
|
138
129
|
"cuntslut": [:insult]
|
|
139
130
|
"cyberfuc": [:sexual]
|
|
140
131
|
"cyberfuck": [:sexual]
|
|
141
132
|
"cyberfucked": [:sexual]
|
|
142
133
|
"cyberfucker": [:sexual]
|
|
143
|
-
"cyberfuckers": [:sexual]
|
|
144
134
|
"cyberfucking": [:sexual]
|
|
145
135
|
"dago": [:discriminatory]
|
|
146
136
|
"damn": [:inappropriate]
|
|
@@ -156,7 +146,6 @@ simple:
|
|
|
156
146
|
"dickjuice": [:sexual]
|
|
157
147
|
"dickmilk": [:sexual]
|
|
158
148
|
"dickmonger": [:discriminatory]
|
|
159
|
-
"dicks": [:sexual :insult]
|
|
160
149
|
"dickslap": [:sexual]
|
|
161
150
|
"dicksucker": [:discriminatory]
|
|
162
151
|
"dickwad": [:insult]
|
|
@@ -165,9 +154,7 @@ simple:
|
|
|
165
154
|
"dickwod": [:insult]
|
|
166
155
|
"dike": [:discriminatory]
|
|
167
156
|
"dildo": [:sexual]
|
|
168
|
-
"dildos": [:sexual]
|
|
169
157
|
"dink": [:insult :sexual]
|
|
170
|
-
"dinks": [:sexual]
|
|
171
158
|
"dipshit": [:insult]
|
|
172
159
|
"doochbag": [:insult]
|
|
173
160
|
"dookie": [:inappropriate]
|
|
@@ -186,7 +173,6 @@ simple:
|
|
|
186
173
|
"ejaculated": [:sexual]
|
|
187
174
|
"ejaculates": [:sexual]
|
|
188
175
|
"ejaculating": [:sexual]
|
|
189
|
-
"ejaculatings": [:sexual]
|
|
190
176
|
"ejaculation": [:sexual]
|
|
191
177
|
"fag": [:discriminatory]
|
|
192
178
|
"fagbag": [:discriminatory]
|
|
@@ -198,14 +184,11 @@ simple:
|
|
|
198
184
|
"faggotcock": [:discriminatory]
|
|
199
185
|
"faggs": [:discriminatory]
|
|
200
186
|
"fagot": [:discriminatory]
|
|
201
|
-
"fagots": [:discriminatory]
|
|
202
187
|
"fags": [:discriminatory]
|
|
203
188
|
"fagtard": [:discriminatory]
|
|
204
189
|
"fart": [:inappropriate]
|
|
205
190
|
"farted": [:inappropriate]
|
|
206
191
|
"farting": [:inappropriate]
|
|
207
|
-
"fartings": [:inappropriate]
|
|
208
|
-
"farts": [:inappropriate]
|
|
209
192
|
"farty": [:inappropriate]
|
|
210
193
|
"fatass": [:insult]
|
|
211
194
|
"felatio": [:sexual]
|
|
@@ -215,16 +198,12 @@ simple:
|
|
|
215
198
|
"fingerfuck": [:sexual]
|
|
216
199
|
"fingerfucked": [:sexual]
|
|
217
200
|
"fingerfucker": [:sexual]
|
|
218
|
-
"fingerfuckers": [:sexual]
|
|
219
201
|
"fingerfucking": [:sexual]
|
|
220
202
|
"fingerfucks": [:sexual]
|
|
221
203
|
"fistfuck": [:sexual]
|
|
222
204
|
"fistfucked": [:sexual]
|
|
223
205
|
"fistfucker": [:sexual]
|
|
224
|
-
"fistfuckers": [:sexual]
|
|
225
206
|
"fistfucking": [:sexual]
|
|
226
|
-
"fistfuckings": [:sexual]
|
|
227
|
-
"fistfucks": [:sexual]
|
|
228
207
|
"flamer": [:discriminatory]
|
|
229
208
|
"fuck": [:sexual]
|
|
230
209
|
"fuckass": [:insult]
|
|
@@ -234,20 +213,16 @@ simple:
|
|
|
234
213
|
"fuckbutt": [:sexual]
|
|
235
214
|
"fucked": [:sexual]
|
|
236
215
|
"fucker": [:sexual :insult]
|
|
237
|
-
"fuckers": [:sexual :insult]
|
|
238
216
|
"fuckersucker": [:insult]
|
|
239
217
|
"fuckface": [:insult]
|
|
240
218
|
"fuckhead": [:sexual]
|
|
241
219
|
"fuckhole": [:insult]
|
|
242
220
|
"fuckin": [:sexual]
|
|
243
221
|
"fucking": [:sexual]
|
|
244
|
-
"fuckings": [:sexual]
|
|
245
222
|
"fuckme": [:sexual]
|
|
246
223
|
"fucknut": [:insult]
|
|
247
224
|
"fucknutt": [:insult]
|
|
248
225
|
"fuckoff": [:insult]
|
|
249
|
-
"fucks": [:sexual]
|
|
250
|
-
"fucks": [:sexual]
|
|
251
226
|
"fuckstick": [:sexual]
|
|
252
227
|
"fucktard": [:insult]
|
|
253
228
|
"fuckup": [:insult]
|
|
@@ -256,10 +231,8 @@ simple:
|
|
|
256
231
|
"fuckwitt": [:insult]
|
|
257
232
|
"fudgepacker": [:discriminatory]
|
|
258
233
|
"fuk": [:sexual]
|
|
259
|
-
"fuks": [:sexual]
|
|
260
234
|
"gangbang": [:sexual]
|
|
261
235
|
"gangbanged": [:sexual]
|
|
262
|
-
"gangbangs": [:sexual]
|
|
263
236
|
"gay": [:discriminatory]
|
|
264
237
|
"gayass": [:sexual]
|
|
265
238
|
"gaybob": [:discriminatory]
|
|
@@ -303,7 +276,6 @@ simple:
|
|
|
303
276
|
"kike": [:discriminatory]
|
|
304
277
|
"kock": [:sexual]
|
|
305
278
|
"kondum": [:sexual]
|
|
306
|
-
"kondums": [:sexual]
|
|
307
279
|
"kooch": [:sexual]
|
|
308
280
|
"kootch": [:sexual]
|
|
309
281
|
"kum": [:sexual]
|
|
@@ -325,37 +297,28 @@ simple:
|
|
|
325
297
|
"mothafuck": [:sexual]
|
|
326
298
|
"mothafucka": [:sexual]
|
|
327
299
|
"mothafucka": [:insult]
|
|
328
|
-
"mothafuckas": [:sexual]
|
|
329
300
|
"mothafuckaz": [:sexual]
|
|
330
301
|
"mothafucked": [:sexual]
|
|
331
302
|
"mothafucker": [:sexual :insult]
|
|
332
|
-
"mothafuckers": [:sexual :insult]
|
|
333
303
|
"mothafuckin": [:sexual]
|
|
334
304
|
"mothafucking": [:sexual]
|
|
335
|
-
"mothafuckings": [:sexual]
|
|
336
305
|
"mothafucks": [:sexual]
|
|
337
306
|
"motherfuck": [:sexual]
|
|
338
307
|
"motherfucked": [:sexual]
|
|
339
308
|
"motherfucker": [:sexual :insult]
|
|
340
|
-
"motherfuckers": [:sexual]
|
|
341
309
|
"motherfuckin": [:sexual]
|
|
342
310
|
"motherfucking": [:sexual]
|
|
343
|
-
"motherfuckings": [:sexual]
|
|
344
|
-
"motherfucks": [:sexual]
|
|
345
311
|
"muff": [:sexual]
|
|
346
312
|
"muffdiver": [:discriminatory :sexual]
|
|
347
313
|
"munging": [:sexual]
|
|
348
314
|
"negro": [:discriminatory]
|
|
349
315
|
"nigga": [:discriminatory]
|
|
350
316
|
"nigger": [:discriminatory]
|
|
351
|
-
"niggers": [:discriminatory]
|
|
352
317
|
"niglet": [:discriminatory]
|
|
353
318
|
"nut sack": [:sexual]
|
|
354
319
|
"nutsack": [:sexual]
|
|
355
320
|
"orgasim": [:sexual]
|
|
356
|
-
"orgasims": [:sexual]
|
|
357
321
|
"orgasm": [:sexual]
|
|
358
|
-
"orgasms": [:sexual]
|
|
359
322
|
"paki": [:discriminatory]
|
|
360
323
|
"panooch": [:sexual]
|
|
361
324
|
"pecker": [:sexual]
|
|
@@ -379,7 +342,6 @@ simple:
|
|
|
379
342
|
"piss": [:inappropriate]
|
|
380
343
|
"pissed": [:inappropriate]
|
|
381
344
|
"pisser": [:sexual]
|
|
382
|
-
"pissers": [:sexual]
|
|
383
345
|
"pisses": [:sexual]
|
|
384
346
|
"pissflaps": [:sexual]
|
|
385
347
|
"pissin": [:sexual]
|
|
@@ -398,17 +360,13 @@ simple:
|
|
|
398
360
|
"pornography": [:sexual]
|
|
399
361
|
"pornos": [:sexual]
|
|
400
362
|
"prick": [:sexual]
|
|
401
|
-
"prick": [:sexual]
|
|
402
|
-
"pricks": [:sexual]
|
|
403
363
|
"punanny": [:sexual]
|
|
404
364
|
"punta": [:insult]
|
|
405
365
|
"pusies": [:sexual :insult]
|
|
406
366
|
"pussies": [:sexual :insult]
|
|
407
367
|
"pussy": [:sexual :insult]
|
|
408
368
|
"pussylicking": [:sexual]
|
|
409
|
-
"pussys": [:sexual]
|
|
410
369
|
"pusy": [:sexual]
|
|
411
|
-
"pusys": [:sexual]
|
|
412
370
|
"puto": [:insult]
|
|
413
371
|
"queef": [:sexual]
|
|
414
372
|
"queer": [:discriminatory]
|
|
@@ -424,7 +382,7 @@ simple:
|
|
|
424
382
|
"shitass": [:insult]
|
|
425
383
|
"shitbag": [:insult]
|
|
426
384
|
"shitbagger": [:insult]
|
|
427
|
-
"
|
|
385
|
+
"shitbrain": [:insult]
|
|
428
386
|
"shitbreath": [:insult]
|
|
429
387
|
"shitcunt": [:insult]
|
|
430
388
|
"shitdick": [:insult]
|
|
@@ -436,16 +394,12 @@ simple:
|
|
|
436
394
|
"shithole": [:insult]
|
|
437
395
|
"shithouse": [:inappropriate]
|
|
438
396
|
"shiting": [:sexual]
|
|
439
|
-
"shitings": [:sexual]
|
|
440
|
-
"shits": [:sexual]
|
|
441
397
|
"shitspitter": [:sexual]
|
|
442
398
|
"shitstain": [:inappropriate :insult]
|
|
443
399
|
"shitted": [:sexual]
|
|
444
400
|
"shitter": [:sexual]
|
|
445
|
-
"shitters": [:sexual]
|
|
446
401
|
"shittiest": [:inappropriate]
|
|
447
402
|
"shitting": [:inappropriate]
|
|
448
|
-
"shittings": [:sexual]
|
|
449
403
|
"shitty": [:inappropriate]
|
|
450
404
|
"shity": [:sexual]
|
|
451
405
|
"shiz": [:inappropriate]
|
|
@@ -469,11 +423,9 @@ simple:
|
|
|
469
423
|
"thundercunt": [:insult]
|
|
470
424
|
"tit": [:sexual]
|
|
471
425
|
"titfuck": [:sexual]
|
|
472
|
-
"tits": [:sexual]
|
|
473
426
|
"tittyfuck": [:sexual]
|
|
474
427
|
"twat": [:sexual]
|
|
475
428
|
"twatlips": [:insult]
|
|
476
|
-
"twats": [:sexual]
|
|
477
429
|
"twatwaffle": [:discriminatory]
|
|
478
430
|
"unclefucker": [:discriminatory]
|
|
479
431
|
"va-j-j": [:sexual]
|
data/lib/swearjar/tester.rb
CHANGED
|
@@ -4,22 +4,22 @@ require 'bloomfilter'
|
|
|
4
4
|
|
|
5
5
|
class Swearjar
|
|
6
6
|
class Tester
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
def initialize(config_file)
|
|
9
9
|
data = YAML.load_file
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
@tester = FuzzyHash.new
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
data['regex'].each do |pattern, type|
|
|
14
14
|
@tester[Regexp.new(pattern)] = type
|
|
15
15
|
end
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
data['simple'].each do |test, type|
|
|
18
18
|
@tester[test] = type
|
|
19
19
|
end
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
end
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
def scan(string, &block)
|
|
24
24
|
string.scan(/\b[\b]+\b/, &block)
|
|
25
25
|
end
|
|
@@ -27,6 +27,6 @@ class Swearjar
|
|
|
27
27
|
def profane?(string)
|
|
28
28
|
scan(string) {|w| return true}
|
|
29
29
|
end
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
end
|
|
32
32
|
end
|
data/lib/swearjar.rb
CHANGED
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
require 'yaml'
|
|
2
2
|
require 'fuzzy_hash'
|
|
3
|
-
require 'dirge'
|
|
4
3
|
|
|
5
4
|
class Swearjar
|
|
6
|
-
|
|
5
|
+
|
|
7
6
|
def self.default
|
|
8
7
|
from_language
|
|
9
8
|
end
|
|
10
|
-
|
|
9
|
+
|
|
11
10
|
def self.from_language(language = 'en')
|
|
12
|
-
new(
|
|
11
|
+
new(File.join(File.dirname(__FILE__), 'config', "#{language}.yml"))
|
|
13
12
|
end
|
|
14
13
|
|
|
15
14
|
attr_reader :tester, :hash
|
|
16
|
-
|
|
15
|
+
|
|
17
16
|
def initialize(file)
|
|
18
17
|
data = YAML.load_file(file)
|
|
19
|
-
|
|
18
|
+
|
|
20
19
|
@tester = FuzzyHash.new
|
|
21
20
|
@hash = {}
|
|
22
|
-
|
|
21
|
+
|
|
23
22
|
data['regex'].each do |pattern, type|
|
|
24
23
|
@tester[Regexp.new(pattern)] = type
|
|
25
24
|
end
|
|
26
|
-
|
|
25
|
+
|
|
27
26
|
data['simple'].each do |test, type|
|
|
28
27
|
@hash[test] = type
|
|
29
28
|
end
|
|
30
|
-
|
|
29
|
+
|
|
31
30
|
end
|
|
32
31
|
|
|
33
32
|
def scan(string, &block)
|
|
34
33
|
string.scan(/\b[a-zA-Z-]+\b/) do |word|
|
|
35
|
-
block.call(word, hash[word.downcase])
|
|
34
|
+
block.call(word, hash[word.downcase] || hash[word.downcase.gsub(/e?s$/,'')] )
|
|
36
35
|
end
|
|
37
36
|
if match = tester.match_with_result(string)
|
|
38
37
|
block.call(match.last, match.first)
|
data/spec/swearjar_spec.rb
CHANGED
|
@@ -10,6 +10,11 @@ describe Swearjar do
|
|
|
10
10
|
Swearjar.default.profane?('FuCk you jim henson').should be_true
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
+
it "should detect simple dirty plurals" do
|
|
14
|
+
Swearjar.default.profane?('jim henson had two dicks').should be_true
|
|
15
|
+
Swearjar.default.profane?('jim henson has two asses').should be_true
|
|
16
|
+
end
|
|
17
|
+
|
|
13
18
|
it "should not detect non-dirty words" do
|
|
14
19
|
Swearjar.default.profane?('i love you jim henson').should be_false
|
|
15
20
|
end
|
|
@@ -22,6 +27,10 @@ describe Swearjar do
|
|
|
22
27
|
Swearjar.default.scorecard('jim henson has a hard on').should == {:sexual=>1}
|
|
23
28
|
end
|
|
24
29
|
|
|
30
|
+
it "should detect multiword plurals" do
|
|
31
|
+
Swearjar.default.scorecard('jim henson has a hard ons').should == {:sexual=>1}
|
|
32
|
+
end
|
|
33
|
+
|
|
25
34
|
it "should censor a string" do
|
|
26
35
|
Swearjar.default.censor('jim henson has a massive hard on he is gonna use to fuck everybody').should == 'jim henson has a massive **** ** he is gonna use to **** everybody'
|
|
27
36
|
end
|
data/swearjar.gemspec
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require File.join(File.dirname(__FILE__), 'lib', 'swearjar', 'version')
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = 'swearjar'
|
|
7
|
+
s.version = Swearjar::VERSION
|
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
9
|
+
s.authors = ["Joshua Hull"]
|
|
10
|
+
s.summary = "Put another nickel in the swearjar. Simple profanity detection with content analysis"
|
|
11
|
+
s.description = "#{s.summary}."
|
|
12
|
+
s.email = %q{joshbuddy@gmail.com}
|
|
13
|
+
s.extra_rdoc_files = ['README.rdoc']
|
|
14
|
+
s.files = `git ls-files`.split("\n")
|
|
15
|
+
s.homepage = %q{http://github.com/joshbuddy/swearjar}
|
|
16
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
17
|
+
s.require_paths = ["lib"]
|
|
18
|
+
s.rubygems_version = %q{1.3.7}
|
|
19
|
+
s.test_files = `git ls-files`.split("\n").select{|f| f =~ /^spec/}
|
|
20
|
+
s.rubyforge_project = 'swearjar'
|
|
21
|
+
|
|
22
|
+
# dependencies
|
|
23
|
+
s.add_runtime_dependency 'fuzzyhash', '~> 0.0.11'
|
|
24
|
+
s.add_development_dependency 'bundler', '~> 1.0.0'
|
|
25
|
+
s.add_development_dependency 'rake', '~> 0.8.7'
|
|
26
|
+
s.add_development_dependency 'rspec', '~> 1.3.0'
|
|
27
|
+
|
|
28
|
+
if s.respond_to? :specification_version then
|
|
29
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
30
|
+
s.specification_version = 3
|
|
31
|
+
|
|
32
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
33
|
+
else
|
|
34
|
+
end
|
|
35
|
+
else
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
metadata
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: swearjar
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
hash: 23
|
|
5
|
+
prerelease:
|
|
5
6
|
segments:
|
|
6
7
|
- 0
|
|
7
8
|
- 0
|
|
8
|
-
-
|
|
9
|
-
version: 0.0.
|
|
9
|
+
- 4
|
|
10
|
+
version: 0.0.4
|
|
10
11
|
platform: ruby
|
|
11
12
|
authors:
|
|
12
13
|
- Joshua Hull
|
|
@@ -14,16 +15,18 @@ autorequire:
|
|
|
14
15
|
bindir: bin
|
|
15
16
|
cert_chain: []
|
|
16
17
|
|
|
17
|
-
date:
|
|
18
|
+
date: 2011-07-06 00:00:00 -07:00
|
|
18
19
|
default_executable:
|
|
19
20
|
dependencies:
|
|
20
21
|
- !ruby/object:Gem::Dependency
|
|
21
22
|
name: fuzzyhash
|
|
22
23
|
prerelease: false
|
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
24
26
|
requirements:
|
|
25
|
-
- -
|
|
27
|
+
- - ~>
|
|
26
28
|
- !ruby/object:Gem::Version
|
|
29
|
+
hash: 9
|
|
27
30
|
segments:
|
|
28
31
|
- 0
|
|
29
32
|
- 0
|
|
@@ -32,19 +35,53 @@ dependencies:
|
|
|
32
35
|
type: :runtime
|
|
33
36
|
version_requirements: *id001
|
|
34
37
|
- !ruby/object:Gem::Dependency
|
|
35
|
-
name:
|
|
38
|
+
name: bundler
|
|
36
39
|
prerelease: false
|
|
37
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
38
42
|
requirements:
|
|
39
|
-
- -
|
|
43
|
+
- - ~>
|
|
40
44
|
- !ruby/object:Gem::Version
|
|
45
|
+
hash: 23
|
|
41
46
|
segments:
|
|
47
|
+
- 1
|
|
42
48
|
- 0
|
|
43
49
|
- 0
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
type: :runtime
|
|
50
|
+
version: 1.0.0
|
|
51
|
+
type: :development
|
|
47
52
|
version_requirements: *id002
|
|
53
|
+
- !ruby/object:Gem::Dependency
|
|
54
|
+
name: rake
|
|
55
|
+
prerelease: false
|
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ~>
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
hash: 49
|
|
62
|
+
segments:
|
|
63
|
+
- 0
|
|
64
|
+
- 8
|
|
65
|
+
- 7
|
|
66
|
+
version: 0.8.7
|
|
67
|
+
type: :development
|
|
68
|
+
version_requirements: *id003
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rspec
|
|
71
|
+
prerelease: false
|
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
73
|
+
none: false
|
|
74
|
+
requirements:
|
|
75
|
+
- - ~>
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
hash: 27
|
|
78
|
+
segments:
|
|
79
|
+
- 1
|
|
80
|
+
- 3
|
|
81
|
+
- 0
|
|
82
|
+
version: 1.3.0
|
|
83
|
+
type: :development
|
|
84
|
+
version_requirements: *id004
|
|
48
85
|
description: Put another nickel in the swearjar. Simple profanity detection with content analysis.
|
|
49
86
|
email: joshbuddy@gmail.com
|
|
50
87
|
executables: []
|
|
@@ -54,15 +91,18 @@ extensions: []
|
|
|
54
91
|
extra_rdoc_files:
|
|
55
92
|
- README.rdoc
|
|
56
93
|
files:
|
|
94
|
+
- Gemfile
|
|
95
|
+
- Gemfile.lock
|
|
57
96
|
- README.rdoc
|
|
58
97
|
- Rakefile
|
|
59
|
-
-
|
|
60
|
-
- config/en.yml
|
|
98
|
+
- lib/config/en.yml
|
|
61
99
|
- lib/swearjar.rb
|
|
62
100
|
- lib/swearjar/tester.rb
|
|
101
|
+
- lib/swearjar/version.rb
|
|
63
102
|
- spec/spec.opts
|
|
64
103
|
- spec/spec_helper.rb
|
|
65
104
|
- spec/swearjar_spec.rb
|
|
105
|
+
- swearjar.gemspec
|
|
66
106
|
has_rdoc: true
|
|
67
107
|
homepage: http://github.com/joshbuddy/swearjar
|
|
68
108
|
licenses: []
|
|
@@ -73,26 +113,31 @@ rdoc_options:
|
|
|
73
113
|
require_paths:
|
|
74
114
|
- lib
|
|
75
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
|
+
none: false
|
|
76
117
|
requirements:
|
|
77
118
|
- - ">="
|
|
78
119
|
- !ruby/object:Gem::Version
|
|
120
|
+
hash: 3
|
|
79
121
|
segments:
|
|
80
122
|
- 0
|
|
81
123
|
version: "0"
|
|
82
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
|
+
none: false
|
|
83
126
|
requirements:
|
|
84
127
|
- - ">="
|
|
85
128
|
- !ruby/object:Gem::Version
|
|
129
|
+
hash: 3
|
|
86
130
|
segments:
|
|
87
131
|
- 0
|
|
88
132
|
version: "0"
|
|
89
133
|
requirements: []
|
|
90
134
|
|
|
91
|
-
rubyforge_project:
|
|
92
|
-
rubygems_version: 1.
|
|
135
|
+
rubyforge_project: swearjar
|
|
136
|
+
rubygems_version: 1.6.2
|
|
93
137
|
signing_key:
|
|
94
138
|
specification_version: 3
|
|
95
|
-
summary: Put another nickel in the swearjar. Simple profanity detection with content analysis
|
|
139
|
+
summary: Put another nickel in the swearjar. Simple profanity detection with content analysis
|
|
96
140
|
test_files:
|
|
141
|
+
- spec/spec.opts
|
|
97
142
|
- spec/spec_helper.rb
|
|
98
143
|
- spec/swearjar_spec.rb
|
data/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.0.2
|