genderizr 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/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ *.swp
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ genderizr
2
+ =========
3
+
4
+ A ruby gem to genderize strings
data/Rakefile ADDED
@@ -0,0 +1,25 @@
1
+ require 'erb'
2
+ require './lib/genderizr/version'
3
+
4
+ GEM = "genderizr-#{Genderizr::VERSION}.gem"
5
+ GEMSPEC = "genderizr.gemspec"
6
+ GEMSPEC_ERB = GEMSPEC + ".erb"
7
+ FILES = `git ls-files`.split(/\n/).delete_if { |f| [GEMSPEC].include?(f) }
8
+
9
+
10
+ task :build => :default
11
+ task :default => GEM
12
+
13
+ task :install => GEM do
14
+ system "gem install #{GEM}"
15
+ end
16
+
17
+ file GEM => GEMSPEC do |task|
18
+ system "gem build -V #{GEMSPEC}"
19
+ end
20
+
21
+ file GEMSPEC => FILES do |task|
22
+ input = File.open(GEMSPEC_ERB, "r")
23
+ output = File.open(task.to_s, "w")
24
+ output.write( ERB.new( input.read ).result )
25
+ end
@@ -0,0 +1,18 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "genderizr/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "genderizr"
6
+ s.version = Genderizr::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Dean Brundage"]
9
+ s.email = ["dean@newrepublicbrewing.com"]
10
+ s.homepage = "https://github.com/brundage/genderizr"
11
+ s.summary = "Genderize text"
12
+ s.description = "A gem to genderize strings"
13
+
14
+ s.files = [ <%= `git ls-files`.split(/\n/).collect {|f| "'#{f}'" }.join(", ") %> ]
15
+ s.test_files = [ <%= `git ls-files -- spec/*`.split("\n").collect {|f| "'#{f}'" }.join(", ") %> ]
16
+ s.executables = [ <%= `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }.collect {|f| "'#{f}'" }.join(", ") %> ]
17
+ s.require_paths = ["lib"]
18
+ end
@@ -0,0 +1,2 @@
1
+ require 'genderizr'
2
+ class String; include Genderizr::StringMethods; end
@@ -0,0 +1 @@
1
+ module Genderizr; VERSION = "0.0.3"; end
data/lib/genderizr.rb ADDED
@@ -0,0 +1,90 @@
1
+ require 'genderizr/version'
2
+ module Genderizr
3
+
4
+ extend self
5
+
6
+ def feminize_string(string)
7
+ genderize_string(string, true)
8
+ end
9
+
10
+
11
+ def genderize_string(string,turn_feminine)
12
+ string.split(/ /).collect do |word|
13
+ genderized = turn_feminine ? masculine_to_feminine[word] :
14
+ feminine_to_masculine[word]
15
+ genderized || word
16
+ end.join(' ')
17
+ end
18
+
19
+
20
+ def masculize_string(string)
21
+ genderize_string(string, false)
22
+ end
23
+
24
+
25
+ module StringMethods
26
+ def feminize; Genderizr.feminize_string(self); end
27
+ def genderize(turn_feminine); Genderizr.feminize_string(self,turn_feminine); end
28
+ def masculize; Genderizr.masculize_string(self); end
29
+ end
30
+
31
+
32
+ private
33
+
34
+ def feminine_to_masculine
35
+ masculine_to_feminine.invert
36
+ end
37
+
38
+ def masculine_to_feminine
39
+ {
40
+ 'boy' => 'girl',
41
+ 'boyish' => 'girlish',
42
+ 'boys' => 'girls',
43
+ 'brother' => 'sister',
44
+ 'brothers' => 'sisters',
45
+ 'cowboy' => 'cowgirl',
46
+ 'cowboys' => 'cowgirls',
47
+ 'craftsman' => 'craftswoman',
48
+ 'dad' => 'mom',
49
+ 'daddy' => 'mommy',
50
+ 'dick' => 'pussy',
51
+ 'dude' => 'lady',
52
+ 'dudes' => 'ladies',
53
+ 'ex-wife' => 'ex-husband',
54
+ 'father' => 'mother',
55
+ 'fathers' => 'mothers',
56
+ 'gentleman' => 'lady',
57
+ 'gentlemen' => 'ladies',
58
+ 'guy' => 'gal',
59
+ 'guys' => 'gals',
60
+ 'he' => 'she',
61
+ 'him' => 'her',
62
+ 'himself' => 'herself',
63
+ 'his' => 'her',
64
+ 'king' => 'queen',
65
+ 'kings' => 'queens',
66
+ 'male' => 'female',
67
+ 'man' => 'woman',
68
+ 'manhood' => 'womanhood',
69
+ 'manlier' => 'womanlier',
70
+ 'manliest' => 'womanliest',
71
+ 'manliness' => 'womanliness',
72
+ 'manly' => 'womanly',
73
+ 'masculine' => 'feminine',
74
+ 'masculinity' => 'femininity',
75
+ 'men' => 'women',
76
+ 'mr' => 'ms',
77
+ 'mr.' => 'ms.',
78
+ 'nobleman' => 'noblewoman',
79
+ 'patriarch' => 'matriarch',
80
+ 'prince' => 'princess',
81
+ 'princes' => 'princesses',
82
+ 'waitress' => 'waiter',
83
+ 'waitressed' => 'waited'
84
+ }
85
+ end
86
+ end
87
+
88
+ if defined?(Rails) && Rails::VERSION::MAJOR >= 3
89
+ require 'genderizr/railtie'
90
+ end
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: genderizr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dean Brundage
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-19 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A gem to genderize strings
15
+ email:
16
+ - dean@newrepublicbrewing.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - README.md
23
+ - Rakefile
24
+ - genderizr.gemspec.erb
25
+ - lib/genderizr.rb
26
+ - lib/genderizr/railtie.rb
27
+ - lib/genderizr/version.rb
28
+ homepage: https://github.com/brundage/genderizr
29
+ licenses: []
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements: []
47
+ rubyforge_project:
48
+ rubygems_version: 1.8.10
49
+ signing_key:
50
+ specification_version: 3
51
+ summary: Genderize text
52
+ test_files: []
53
+ has_rdoc: