genderizr 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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: