genderizr 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/README.md +4 -0
- data/Rakefile +25 -0
- data/genderizr.gemspec.erb +18 -0
- data/lib/genderizr/railtie.rb +2 -0
- data/lib/genderizr/version.rb +1 -0
- data/lib/genderizr.rb +90 -0
- metadata +53 -0
data/.gitignore
ADDED
data/README.md
ADDED
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 @@
|
|
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:
|