swear-jar 0.0.3

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/README.mkd ADDED
@@ -0,0 +1,40 @@
1
+ = swear-jar
2
+
3
+ == DESCRIPTION:
4
+
5
+ Clean up dirty text.
6
+
7
+ == INSTALL:
8
+
9
+ sudo gem install swear-jar
10
+
11
+ == EXAMPLE:
12
+
13
+ require 'swear-jar'
14
+ t = SwearJar::Translator.new
15
+ t.cleanup("go **** yourself.") # => "go fluff yourself."
16
+
17
+ == LICENSE:
18
+
19
+ (The MIT License)
20
+
21
+ Copyright (c) 2011 Alex Genco
22
+
23
+ Permission is hereby granted, free of charge, to any person obtaining
24
+ a copy of this software and associated documentation files (the
25
+ 'Software'), to deal in the Software without restriction, including
26
+ without limitation the rights to use, copy, modify, merge, publish,
27
+ distribute, sublicense, and/or sell copies of the Software, and to
28
+ permit persons to whom the Software is furnished to do so, subject to
29
+ the following conditions:
30
+
31
+ The above copyright notice and this permission notice shall be
32
+ included in all copies or substantial portions of the Software.
33
+
34
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
35
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
36
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
37
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
38
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
39
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
40
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,18 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+ require 'hoe'
5
+
6
+ # Hoe.plugin :compiler
7
+ # Hoe.plugin :gem_prelude_sucks
8
+ # Hoe.plugin :inline
9
+ # Hoe.plugin :racc
10
+ # Hoe.plugin :rubyforge
11
+
12
+ Hoe.spec 'swear_jar' do
13
+ developer('Alex Genco', 'alexgenco@gmail.com')
14
+
15
+ # self.rubyforge_name = 'swear_jarx' # if different than 'swear_jar'
16
+ end
17
+
18
+ # vim: syntax=ruby
data/bin/swear-jar ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib swear-jar.rb]))
4
+ include SwearJar
5
+
6
+ t = Translator.new
7
+
8
+ if ARGV.size > 0
9
+ phrase = ARGV.join(" ")
10
+ else
11
+ print "Enter a phrase: "
12
+ phrase = gets.chomp
13
+ end
14
+
15
+ t.cleanup(phrase)
16
+
17
+ puts phrase
@@ -0,0 +1,84 @@
1
+ --- # swear-regex: clean
2
+ '(fuck)+\b': # fuck
3
+ [truck, shuck, duck, pluck, brush, fudge, flood, fooey, fluff]
4
+
5
+ '(fuck)+(ing)+\b': # fucking
6
+ [trucking, plucking, fiddling, brushing, ducking, fudging, fluffing, futzing]
7
+
8
+ '(fuck)+(er+)+\b': # fucker
9
+ [trucker, plucker, brusher, fiddler, fudger, fluffer, futzer, ducker]
10
+
11
+ '(fuck)+(ed)+\b': # fucked
12
+ [trucked, plucked, brushed, fiddled, fudged, fluffed, futzed, ducked]
13
+
14
+ '\b(shit)+\b': # shit
15
+ [slit, spit, print, split, shin, pit, bit, click, stick]
16
+
17
+ '\b(shit)+(t+er)+\b': # shitter
18
+ [spitter, printer, splitter, sinner, pitter, clicker, sticker]
19
+
20
+ '\b(shit)+(t+ing)+\b': # shitting
21
+ [spitting, printing, splitting, shining, biting, clicking, sticking]
22
+
23
+ '\b(sh)+(itt+ed|at)+\b': # shitted
24
+ [slitted, printed, splitted, spat, bit, clicked, stuck]
25
+
26
+ '\b(crap)+\b': # crap
27
+ [crab, grab, blab, slab, trap, nap, tap, crud, crikey]
28
+
29
+ '\b(crap)+(p+y)+\b': # crappy
30
+ [crabby, grabby, blabby, sloppy, slappy, tappy, cruddy, crikey]
31
+
32
+ '\b(crap)+(p+ing)+\b': # crapping
33
+ [grabbing, blabbing, slapping, tapping, pooping]
34
+
35
+ '\b(damn)+\b': # damn
36
+ [darn, dang, dan, bam, plain, spam, lamb, man]
37
+
38
+ '\b(dam)+(m+it|n+it)+\b': # damnit
39
+ [darnit, dangit]
40
+
41
+ '\bhell+\b': # hell
42
+ [heck, hockey sticks, hey, william tell]
43
+
44
+ '\b(ass+)+': # ass
45
+ [butt, bottom, rear, bass, back, class, blast, wrist, mass, mast, past, hand]
46
+
47
+ '\b(ass+)+(es)+\b': # asses
48
+ [butts, bottoms, rears, basses, backs, classes, blasts, wrists, masses, masts, pasts, hands]
49
+
50
+ '\b(pussy)+\b': # pussy
51
+ [crusty, cat, busy]
52
+
53
+ '\b(puss+)+(ies|ys)+\b': # pussies
54
+ [crusties, cats, daisies, tushies]
55
+
56
+ '\b(dick)+\b': # dick (sorry, richard)
57
+ [trick, pick, stick, brick, click, blink]
58
+
59
+ '\b(dick)+(s)+\b': # dicks
60
+ [tricks, picks, sticks, bricks, clicks, blinks]
61
+
62
+ '\b(bitch)+\b': # bitch
63
+ [snitch, pitch, witch, stitch, quidditch, mitch, rich]
64
+
65
+ '\b(bitch)+(es+)+\b': # bitches
66
+ [snitches, pitches, witches, stitches, mitches, riches]
67
+
68
+ '\b(bitch)+i(ed)+\b': # bitched
69
+ [snitched, pitched, stitched]
70
+
71
+ '\b(bitch)+(ing*)+\b': # bitching
72
+ [pitching, snitching, twitching, complaining, bleaching]
73
+
74
+ '\b(cock)+\b': # cock
75
+ [clock, block, stock, lock, wok, dock, sock]
76
+
77
+ '\b(cock)+s+\b': # cocks
78
+ [clocks, blocks, stocks, locks, woks, docks, socks]
79
+
80
+ '\b([kc]unt)+\b': #cunt
81
+ [punt, stunt, bunt, mutt, club, crazy girl, young]
82
+
83
+ '\b([kc]unt)+s+\b': #cunt
84
+ [punts, stunts, bunts, mutts, clubs, crazy girls, youngs]
data/lib/swear-jar.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'yaml'
2
+
3
+ module SwearJar
4
+ VERSION = '1.0.0'
5
+
6
+ class Translator
7
+ attr_reader :translations
8
+
9
+ def initialize
10
+ translations_file = File.join(File.dirname(__FILE__), %w[.. data translations.yml])
11
+ @translations = YAML.load(IO.read(translations_file))
12
+ end
13
+
14
+ def cleanup(string)
15
+ @translations.keys.each do |swear|
16
+ regex = Regexp.compile(swear, true)
17
+ if regex =~ string
18
+ r = rand(translations[swear].size)
19
+ string.gsub!(regex, translations[swear][r])
20
+ end
21
+ end
22
+ return string
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,15 @@
1
+
2
+ require File.expand_path(
3
+ File.join(File.dirname(__FILE__), %w[.. lib swear_jar]))
4
+
5
+ RSpec.configure do |config|
6
+ # == Mock Framework
7
+ #
8
+ # RSpec uses it's own mocking framework by default. If you prefer to
9
+ # use mocha, flexmock or RR, uncomment the appropriate line:
10
+ #
11
+ # config.mock_with :mocha
12
+ # config.mock_with :flexmock
13
+ # config.mock_with :rr
14
+ end
15
+
@@ -0,0 +1,34 @@
1
+ require File.join(File.dirname(__FILE__), %w[spec_helper])
2
+
3
+ include SwearJar
4
+
5
+ describe Translator do
6
+
7
+ before(:each) do
8
+ @t = Translator.new
9
+ end
10
+
11
+ it "should be instantiated with no arguments" do
12
+ lambda {Translator.new()}.should_not raise_error
13
+ lambda {Translator.new("argument")}.should raise_error(ArgumentError)
14
+ end
15
+
16
+ it "should take a string as an argument to cleanup method and return a string" do
17
+ @t.cleanup("somebody").should be_instance_of(String)
18
+ end
19
+
20
+ it "should read the yaml dictionary upon instantiation" do
21
+ @t.translations.should be_instance_of(Hash)
22
+ end
23
+
24
+ describe "cleanup" do
25
+ it "should clean up bad words" do
26
+ @t.cleanup("crap").should_not == "crap"
27
+ end
28
+
29
+ it "should not clean up otherwise" do
30
+ @t.cleanup("dog").should == "dog"
31
+ end
32
+ end
33
+ end
34
+
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swear-jar
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - Alex Genco
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-02-04 00:00:00 -08:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: SwearJar can clean up dirty text. Further functionality may come later.
23
+ email: alexgenco@gmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - README.mkd
32
+ - Rakefile
33
+ - bin/swear-jar
34
+ - data/translations.yml
35
+ - lib/swear-jar.rb
36
+ - spec/swear-jar_spec.rb
37
+ - spec/spec_helper.rb
38
+ has_rdoc: true
39
+ homepage:
40
+ licenses: []
41
+
42
+ post_install_message:
43
+ rdoc_options: []
44
+
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ hash: 3
53
+ segments:
54
+ - 0
55
+ version: "0"
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ requirements: []
66
+
67
+ rubyforge_project:
68
+ rubygems_version: 1.6.2
69
+ signing_key:
70
+ specification_version: 3
71
+ summary: SwearJar can clean up dirty text. Further functionality may come later.
72
+ test_files: []
73
+